查找程序入口

查找程序入口

win32控制台程序查找程序入口

一、调用特征

main函数被调用前要先调用的函数如下

GetVersion()
_heap_init()
GetCommandLineA()
_crtGerEnviromentStringsA()
_setargv()
_setEnvp
_cinit()


经过编译器编译后,main函数的参数变为3

调用过程:KERNEL32mainCRTStartup()main()

这些函数调用结束后就会调用main函数,根据main函数的调用特征,将3个参数压入栈内作为函数的参数

二、查找

根据调用顺序和参数情况,总结如下方法:

  1. 找到一下函数中的一个

    GetVersion()
    _heap_init()
    GetCommandLineA()
    _crtGerEnviromentStringsA()
    _setargv()
    _setEnvp
    _cinit()
    
  2. 在其后方寻找三个参数的call

三、实验

  1. 寻找函数

    OD会识别函数


    找到GetCommandLineA()

  2. 往下寻找三个参数的函数

    发现三个push,并且CALL后平栈0xC,初步判断为程序入口


    跟进函数观察

    确定为程序入口

posted @ 2021-08-17 16:58  Ybitsec  阅读(196)  评论(0编辑  收藏  举报