-
-
[分享][原创]小白逆向之upx脱壳
-
发表于:
2018-2-1 19:20
18320
-
最近接触了几天的逆向技术,很苦逼,没有多少大块的时间来学习,只能一点一点碎片化学习了。
因为刚接触逆向,在脱壳的过程中还是状况连连,虽然找到了正确的OEP,但是却dump不下来,还是心塞塞的。下面就把脱壳的过程做一下记录,也希望感兴趣的朋友帮忙看看问题出在哪里,在此谢过。
首先用ollydbg加载起来,OEP在pushad,这个是将所有的寄存器压栈,其对应的是popad,这个是我们最终要找到的位置,因为只要找到popad,那么离真正的OEP.就不远了。
F8跑起来
遇到向上的红箭头,左击该行的下一行,即 B8 01000000这一行,按F4,后面遇到红色向上的箭头都这样操作。
后面就是F8一直向下。
此时来到此处,别再点下一行按F4了,可以看到下一行是直接退出程序,所以此时我们要F8跟上去,F8之后发现是一个循环,那么我们就要找到循环最终的走向,经过几轮循环我们发现有一个分支可以继续向下走
此时我们发现这个循环跳了出来,当然白色线是因为循环未结束,流程还不能到这里,我们在跳出的位置0x012B76F7左击,F4运行到此处,然后F8继续
一会我们来到了popad的位置,继续向下发现有一个大跳转,即0x13B7765,这个时候已经脱壳完毕,下面我们看看跳转的位置,F8单步一次。
来到此处我们看到了调用了一个函数,我们F7步入看看。
这个就是真正的OEP了,此时使用ollydbg的插件Dump出来就可以用IDA分析了。
谢谢zbzb指出的错误,已更正EIP->OEP,让大家见笑了。
问题补充:
我用插件dump的时候出了这个问题,有没有大神指教一下什么原因。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课