|
吾爱游客
发表于 2020-4-21 13:28
这款游戏是n年前的一个不出名游戏,而且壳是私服加的,经过ExeInfo侦测,使用MoleBox2.x加的。我前几天刚刚做了下,截图啥的没留下,只根据印象写出流程,如果不行,我在补充截图。
MoleBox2.x加的壳,可以通过ESP定律快速找到OEP,具体过程如下:
1. OD加载程序,发现程序停止处,有典型的特征代码PUSHAD,
2. F8单步执行2次,来到地址: <>, 然后再ESP下硬件写入断点。
3. F9使程序恢复运行,每次按F9注意观察断点附近代码,是否发现POPAD 特征码,点击9次后,到达<>
4. 发现POPAD特征码, 注意Call EAX这行代码,EAX的地址就是OEP地址,F8到达这条指令后,F7步入
5. 找到OEP其实就可以用OD的dump插件或者其他工具(比如<>)进行脱壳了,但是实际上这里直接脱壳,程序无法运行,因为IAT还是损坏的。下面首先找到IAT列表:因为IAT列表是连在一块的,所以找到一个API,就找到了列表,恰好在OEP附近就有个系统调用<>, 右键进入内存地址,数据窗口可以看到完整的IAT列表
6. 可以看到IAT列表中,夹杂几个游戏地址,而不是系统API,这些应该就是壳加密过的API,往往这些API都是在解包过程中被加密的,下面我们尝试找到这些加密API的函数,并跳过它
7. 选择其中一个被加密API,记住地址。然后Ctrl+F2,重新启动程序,然后根据之前步骤首先在ESP加硬件断点,然后在内存窗口Ctrl+G到达记住的加密API的地址,右键加硬件写入断点。
8. F9恢复运行,多点几次注意观察在某次F9的时候,原始IAT出现,再点F9后加密API出现,所以加密call就在这两次中间,单步跟踪找到它
9. 找到后,Nop掉这个函数调用,F9继续运行至OEP,现在进行脱壳,OEP和IAT都是完好的。至此脱壳完毕。
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|