新版aspr脱壳方法(完全版)
2007-01-13 20:14:35 来源:WEB开发网核心提示:新版ASPR的加壳方法有了一些变化,用工具是脱不了了,所以写了这个,给大家一个简单的解决方案.用OD载入,BP IsDebuggerPresent,F9,停了下来:77E52740 >64:A1 18000000MOVEAX, DWORD PTR FS:[18]77E527468B40 30MOVEAX, DWO
新版ASPR的加壳方法有了一些变化,用工具是脱不了了,所以写了这个,给大家一个简单的解决方案.
用OD载入,BP IsDebuggerPresent,F9,停了下来:
77E52740 > 64:A1 18000000 MOV EAX, DWORD PTR FS:[18]
77E52746 8B40 30 MOV EAX, DWORD PTR DS:[EAX+30]
77E52749 0FB640 02 MOVZX EAX, BYTE PTR DS:[EAX+2]
77E5274D C3 RETN
F8,到RETN之前这一行,看看[EAX+2],我是7FFDF002=01,
重新载入,把7FFDF002值改为0(这样可跳过ASPR对程序级调试的检查),F9,这时有异常会停下来,这时就用SHIFT+F9过,大约30次左右,你可看到这样的代码
00C23D5F 3100 XOR DWORD PTR DS:[EAX], EAX
00C23D61 64:8F05 0000000>POP DWORD PTR FS:[0]
00C23D68 58 POP EAX
00C23D69 833D BC7EC200 0>CMP DWORD PTR DS:[C27EBC], 0
00C23D70 74 14 JE SHORT 00C23D86
00C23D72 6A 0C PUSH 0C
00C23D74 B9 BC7EC200 MOV ECX, 0C27EBC
00C23D79 8D45 F8 LEA EAX, DWORD PTR SS:[EBP-8]
00C23D7C BA 04000000 MOV EDX, 4
00C23D81 E8 8ED2FFFF CALL 00C21014
00C23D86 FF75 FC PUSH DWORD PTR SS:[EBP-4]
00C23D89 FF75 F8 PUSH DWORD PTR SS:[EBP-8]
00C23D8C 8B45 F4 MOV EAX, DWORD PTR SS:[EBP-C]
00C23D8F 8338 00 CMP DWORD PTR DS:[EAX], 0
00C23D92 74 02 JE SHORT 00C23D96
00C23D94 FF30 PUSH DWORD PTR DS:[EAX]
00C23D96 FF75 F0 PUSH DWORD PTR SS:[EBP-10]
00C23D99 FF75 EC PUSH DWORD PTR SS:[EBP-14]
00C23D9C C3 RETN
这是典型的ASPR的最后一个异常。(两个JE加个RETN),这时不要SHIFT+F9了,不然程序会运行的。要用SHIFT+F7进入。这时会停在系统空间。用ALT+M打开MEMORY MAP,找到SYSTEM CLEAN所在的位置,第一个SECTION如下.
更多精彩
赞助商链接