寻找OEP

脱壳的首要任务是寻找程序的OEP,找到程序的OEP后,再利用OD插件Ollydump进行脱壳,或者利用工具LoadPE进行脱壳importREC进行修复。这里先来讲述如何寻找程序的OEP。

方法1:单步跟踪
采用F8向下跟踪的方法,遇见向下的跳转继续,遇见向上的跳转(其实就是循环),F4运行到鼠标处走出循环。对于UPX壳或aspack壳直到遇到popad指令,再继续F8很快就会到达程序的OEP。

方法2:ESP定律
F8一次,观察寄存器,改变的变量(为红色),即ESP,右键->数据窗口中跟随,在数据窗口中看到已经跟随到ESP所显示的地址处,然后在该位置上设置断点,运行程序F9,观察断点处附件是否出现popad指令,若出现单步F8便可找到程序的OEP。

方法3:一步直达

右键查找->命令,键入popad,整个块不勾选,一直下一个直到找到要找的那个popad


方法4:2次内存镜像

alt+M找到内存窗口或直接点任务栏上M,在程序领空的资源段.rsrc下硬件断点,F9运行断住后再在内存窗口处00401000(不确定是不是一直是这个)再次下断,运行便找到popad。

方法5:模拟跟踪
alt+M找到内存窗口,找到关键内容SFX,找到其对应的地址,在命令处键入tc eip<xxxxxx(地址)运行后自动追踪。aspack壳

方法6:SFX

选项->调试设置->SFX,选择块方式跟踪真正入口处。aspack壳



总结:前三种方式自己手动寻找

后两种利用OD的功能自动寻找出程序的OEP

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值