[原创]ET199带狗脱壳过程
本人初学,第一次写脱壳教程,希望少点砖头,另外写这个教程的主要目的是求解我脱壳解包后的程序为什么无法运行,分享自己一点点经验的同时,希望各位大侠指点一下,文章末尾会说到
程序为et199狗+molebox打包
补充一点:该程序的难点在于molebox解包,而解包的难点在于如何知道打包文件清单,因为该程序为最新molebox打包,本人比较笨,没有找到解决方法,是通过其他一些已经解包过的程序得到的该程序的文件清单,最后通过注入的方式直接拷贝出文件,注入就不用多说了,地球人都知道。
脱壳思路:
第一步找到oep,之后修复iat,但iat加密,得手工处理加密iat,然后nop掉,来到oep,在od中dump程序,通过修复iat保存程序
我现在是这样操作的
od 打开程序,在输入命令db CreateThread

f9运行,停在下面

f2取消中断,两次ctrl+f9 运行返回,到达这里

f8进入,再Ctrl+f9运行返回,到达下图

然后f8,向下可以到达popfd

f8到下面有一个jmp 会跳转到一个call,继续f8到下面的一个jmp

jmp后就来到了oep

二、修复iat
一是在到达oep之前就改magic jump 或者 patch code修复;二是 到达oep之后,查看加密之后的函数调用,
根据其解密的方式编写代码还原,然后IR修复。
参考文章
http://bbs.pediy.com/showthread.php?t=90431
我是这样操作的,对于修复iat
1、到达oep后,选择某个api函数,使用数据窗口跟随,查找iat处理情况,找到相应的iat,在数据窗口中下硬件写入断点(见图1),ctrl+f2重新载入程序,并在数据窗口中ctrl+g(见图2),然后f9运行,断下后看数据窗口中内存信息是否有变化,无则继续,有变化则观察,如果已经填充为加密的,则在上一条语句处设硬件访问断点(见图3),

图1

图2


图3
2、dump修复程序
Nop加密指令,完成iat修复,重新到达oep处,在od中dump程序,并运行ImportREC修复程序


但是我脱壳及解包后,程序能运行,但无法进入程序的主要功能界面,运行后点“play!”按钮后报错,错误提示如下


错误日志如下:
Crash_2015-07-06_100024.rar
参考资料
不同思路脱UPX加密壳及修复IAT表
http://www.52pojie.cn/forum.php?mod=viewthread&tid=63220
【原创】浅谈iat加密的处理
http://bbs.pediy.com/showthread.php?t=90431
