1.OEP
2.解密IMPORT
3.修复STOLEN CODE
1.OEP比较好找,断到最后一次异常后开始单步跟踪,最终一个跨段转移就到了入口,但是是被STOLEN之后的入口了,STOLEN CODE在转移之前就已经被执行。
2.ASPR1.23RC4对KERNEL32.DLL里的API做了IAT HOOK,所以需要将其IAT HOOK去掉进行还原,然后IAT表里不同DLL的函数地址表应该是用0来分隔,但是ASPR用了随机数,这里要清0,还有个别的API是将API代码COPY到程序中直接使用,这里搞明白是啥API就可以修复了。经过以上步骤就修复了IAT。
3.修复STOLEN CODE需要了解编译器入口代码的特征,才好确定STOLEN了哪些代码。
技巧
利用IMPORT REC的 Adcanced Commands ->Get API Calls来搜索"Get 'Call [X] scheme'"其实也就是FF 15标志,这样来定位调用API的位置,找其规律,脚本或者程序进行批量修复。或者利用Import REC的TRACE LEVEL来进行识别,但是似乎有识别错的,可能不一定靠谱。
1