菜鸡的偷学MoleBox壳脱壳

上午搞到一个MoleBox壳的小程序,下面就来介绍一下这种壳应该怎么脱

将程序用od加载,进去的界面是这样的,有没有很熟悉?pushad,对的,先来个esp大法
在这里插入图片描述
在这里插入图片描述
已经看到popad了,说明壳代码已经执行过一次了,那么如果没有多层的壳,下一个call很有可能就是oep,这里,很幸运,call eax进去的就是oep,f7跟进,尝试在此处脱壳(记住oep的值00046C6D,后续有用)
在这里插入图片描述

用iat修复dump出来的文件时,会发现有一些无效的api,先不管他,把无效的删除,直接修正试一试,发现程序崩了。
在这里插入图片描述在这里插入图片描述
这说明我们的iat修复出了问题,此时你有两种方法去解决它
1.还记得刚才哪个iat修复工具上面显示的无效指针吗,第一个的rva为66178,我们可以看到,这段内存周围还有很多正常解读的函数。
可以看到iat表的某些数据出现错误
还有一种方法也能找到这个地址,还记得刚刚在od找到的oep吗,跟着下面代码看,可以发现有一个call,那个call就是去获取api的,跟随那里的地址,也能找到这里(iat)
在这里插入图片描述
选一个异常的地址,对其下硬件访问断点,清除原来的断点,然后f9.(f9之前在数据窗口跟随刚刚下断点的地址,盯着他的数据看)
在这里插入图片描述
在多次f9之后,我们发现此地址变成了一个api函数的地址
在这里插入图片描述
此时,准备单步跟着走
在这里插入图片描述
f7跟进这个call,继续单步
在eax赋值的过程中,相应地址的数据改变了
这说明iat的改变就是因为这个赋值的过程导致的,那么要解决这个问题有两种方法:一是将图中方框处赋值语句下硬件访问断点,然后重新执行nop掉该语句;二是修改该汇编代码前面的一个跳转,个人觉得nop更好一点。
在这里插入图片描述
然后删除硬件断点,跳转到oep的位置,下个断点,f9到oep,再次按照常规脱壳方式脱壳即可。
在这里插入图片描述
没有无效的
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值