【脱壳-寻找OEP】通过内存定位OEP实现脱壳

这个方法使用的是特殊OD,这个OD也叫VBOD 这个OD只会在执行的时候断点,其他异常之类的操作都不会进行断点。

这个方法是通过运行壳后壳会对原来的代码段进行 解密 还原 写入 这三个步骤,我们通过在他写入的那个段的时候设置一个执行断点

这次用的也是UPX的壳,载入特殊od后可以看到upx的壳是在我们原始oep的代码外面,UPX0里面才包含我们的原始入口点,UPX1是不包含的,UPX1这块就对 解密 还原 写入这三个步骤进行操作,然后写入到UPX0这个输入表中,也就是我们真实的OEP入口代码地址。
在这里插入图片描述
我们在UPX0原始代码段设置内存访问断点,只要UPX1这个代码段完成了解密 还原 这两个步骤,我们就在写入这个步骤完成后给他拦截,他写入完成后肯定要执行程序,因为这个od的特殊性,只会在他写入完成后执行原始oep代码段第一行代码的时候才会进行断点。
在这里插入图片描述
设置完后F9运行,可以发现他断在了我们的入口点处,代码已经解密完成了,加壳程序已经还原了他的代码,这也是还原后执行的第一行代码段被我们断了下来。
在这里插入图片描述
有些壳会有很多个区段,我们就一个个排除去执行断点,如果直接跑起来了证明就不是这个代码段,继续在他的下一个代码断进行执行断点,只要没有直接运行起来程序,哪他大概率就是加壳程序还原的第一行代码。注意:不需要去断加壳程序原本的代码断,因为他本身的代码断是做解密 还原 写入的,没必要在他本身做断点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值