ybit

查找程序入口

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,初步判断为程序入口


    跟进函数观察

    确定为程序入口

分类:

技术点:

相关文章:

  • 2021-05-16
  • 2021-06-30
  • 2021-09-29
  • 2021-11-06
  • 2021-05-03
  • 2021-05-12
  • 2021-12-01
  • 2021-10-22
猜你喜欢
  • 2021-11-18
  • 2021-07-21
  • 2021-11-03
  • 2022-01-08
  • 2021-11-05
  • 2021-05-03
  • 2021-09-29
相关资源
相似解决方案