mian( )函数查找(Windows下逆向分析)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/brunomarss/article/details/50714586
Visual Studio编译的 Hello World程序为例:
1、字符串分析法
    搜索字符串Hello World并进入,跳转到上层函数(信息窗口),寻找标志:函数参数(main函数后两个参数是指针),exit等。



2、API下断栈回溯法
     找到main函数中的Hello World并进入,在函数入口处下断,F9运行,查看堆栈情况,找到离断点最近的return,单击回车,便回到上一个栈帧。
     查找关键函数,下断

根据字符串找到此处,并在入口处下断



F9运行,查看堆栈
找到离断点最近的return,单击回车,回到上一个栈帧



栈回溯结果:



3、单步跟踪法(最靠谱、适应性最强)

以JMP和Call为单位逐个跟进,根据main函数的特征判断main函数的位置(参数个数,参数类型,临近exit)

注:逐层查找

4、若是窗口程序,可通过查找 窗口回调函数(Spy++)进行分析

经验之谈:
a.OD上 E 键调出模块信息,找到用户模块,可跳转到main函数,同时得到模块基址;
  b.一般情况下,条件分支不走的分支,设置为新的EIP,直接运行过去;

猜你喜欢

转载自blog.csdn.net/brunomarss/article/details/50714586