查找程序入口
查找程序入口
win32控制台程序查找程序入口
一、调用特征
main函数被调用前要先调用的函数如下
GetVersion()
_heap_init()
GetCommandLineA()
_crtGerEnviromentStringsA()
_setargv()
_setEnvp
_cinit()


经过编译器编译后,main函数的参数变为3个
调用过程:KERNEL32→mainCRTStartup()→main()
这些函数调用结束后就会调用main函数,根据main函数的调用特征,将3个参数压入栈内作为函数的参数
二、查找
根据调用顺序和参数情况,总结如下方法:
-
找到一下函数中的一个
GetVersion() _heap_init() GetCommandLineA() _crtGerEnviromentStringsA() _setargv() _setEnvp _cinit() -
在其后方寻找三个参数的
call
三、实验
-
寻找函数
OD会识别函数

找到
GetCommandLineA()
-
往下寻找三个参数的函数
发现三个
push,并且CALL后平栈0xC,初步判断为程序入口
跟进函数观察

确定为程序入口

浙公网安备 33010602011771号