UnPackMe_CrypKeySDK5.7下载地址 密码:2o6h
1.1 程序结构
根据查出的程序信息得出,程序中99%进行了加壳保护,但是是一种未知的壳
查看区段,发现程序区段的后面加入了三个名称奇怪的区段,应该是由加壳人添加上去的
根据程序的入口地址,可以判断你出程序的入口地址在Have区段
1.2 OD动调
使用OD打开程序后并没有发现例如pushad或者popad的指令,所以似乎不太好使用ESP定律法。
所以先使用单步跟踪法去跟踪ESP
在当前页面中最有可能返回OEP(origin Enter Point)的指令就是jmp dword ptr ds:[0x46B014]
查看地址0x46B014地址存储的值为0x004271B0,该地址为.text区段的值,即代码段;
故这个jmp指令返回的应该是OEP,跟踪后发现,确实返回到OEP处。
1.3 dump
dump,就是转存,也就是抓取内存镜像,就是把内存指定地址的映像文件读取出来,然后用文件等形式保存下来!
通过使用OD自身插件Ollydump,将文件dump出来
ImportREC工具检查不到吾爱破解OD
的进程,可能是由于吾爱破解OD是管理员权限执行的程序,可以使用OllyICE替代OD
我们通过使用ImportREC工具检查进程中的输入表,发现输入表并不存在异常,所以我们可以不用对输入表进行修复,同样不需要重构输入表。
修正物理地址和物理大小即可得到可执行的脱壳程序。
1.4 区段处理
这个部分其实不做好像问题也不大,多余的区段不影响程序的运行;
因为多余的段肯定是壳的区段,我们将存储壳代码的区段删除掉;
通过LordPE工具编辑PE程序即可,如上图进行清除区段的操作即可;