【逆向分析】查找程序入口点

工具:OllyDBG
链接:https://pan.baidu.com/s/1ApV8xzmlI00TeokUF6cmZw?pwd=6ilp
提取码:6ilp

1、尾部跳转法

跳转指令位于代码的尾部且跳转到一个很远的位置
而且在这条指令的后面,会存在着非常多的0x00字节,也就是一大堆无意义的代码
在这里插入图片描述
进行跳转即可发现程序入口点
在这里插入图片描述

2、OD的插件法

点击:插件->OllyDump->Find OEP by setting Nop(Trace over)
在这里插入图片描述
会自动寻找入口点
在这里插入图片描述

3、利用pushad和popad查找入口点

a)可以一路F8,快速浏览程序,这里发现pushfd和pushad,用于保存所有的寄存器和标志。那么加壳程序很可能在跳转到OEP之前,再恢复所有的寄存器和标志,所以我们可以通过在栈上设置一个硬件访问断点来尝试定位OEP。一般来说,在尾部跳转的位置之前会有popad或者popfd指令,通过这个就可以找到OEP了在这里插入图片描述
b)这些状态它在进入入口点之前一定会出栈,所以我们在该处设置硬件访问断点
先将程序单步运行至pushad之后,然后右键单击ESP,选择数据窗口跟随
在这里插入图片描述
然后选中数据窗口中的前四个字节,右键单击-》断点-》硬件访问-》Dword
在这里插入图片描述
然后F9,直接执行到出栈访问位置,然后在附近寻找跳转语句进入入口点
0040754f为断点位置,然后发现下方的retn,可能返回一个新位置
在这里插入图片描述
成功找到入口点
在这里插入图片描述

4、“ESP定律”(并不是真万能)

a)不断F8单步执行,直到ESP的值变成红色的时候停下来
b)在ESP值上单击鼠标右键,选择“数据窗口中跟随”
c)选中数据窗口中前四个字节的内容,单击鼠标右键,选择“断点”->“硬件访问”->“Dword

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值