入口函数的反汇编
大家新年快乐啊。。。
有个小问题,想请教:
一个c控制台程序, 代码很简单, 已经生成exe, 如果用 od来进行 反汇编, 如何知道这个小程序的入口函数在哪里呢?vc的反汇编,不难,照着看就是了,。,脱离了vc,比如用od来反汇编, 我就傻眼了。。。不知道其入口函数必须找到main函数,然后开始设置断点,进行分析。有控制台程序逆向的前辈, 给个建议,谢谢了
004010D5 |. FF15 00604000 call dword ptr [<&KERNEL32.GetCommand>; [GetCommandLineA004010DB |. A3 24AE4000 mov dword ptr [40AE24], eax004010E0 |. E8 1A100000 call 004020FF004010E5 |. A3 E8984000 mov dword ptr [4098E8], eax004010EA |. E8 C30D0000 call 00401EB2004010EF |. E8 050D0000 call 00401DF9004010F4 |. E8 7A0A0000 call 00401B73004010F9 |. A1 28994000 mov eax, dword ptr [409928]004010FE |. A3 2C994000 mov dword ptr [40992C], eax00401103 |. 50 push eax00401104 |. FF35 20994000 push dword ptr [409920]0040110A |. FF35 1C994000 push dword ptr [40991C]00401110 |. E8 FBFEFFFF call 00401010 // 貌似一般这个就是跳到main的。。00401115 |. 83C4 0C add esp, 0C00401118 |. 8945 E4 mov dword ptr [ebp-1C], eax
[解决办法]
方法很多,你可以这样
int main()
{
__asm int 3
...
}
然后直接在调试器里运行,到了__asm int 3就会断点