在找到OEP后用LordPE来dump full时"出现无法在进程同存中脱壳",用dump partial时出现“无法读入内存进程”是什么原因?
008A96FF FF15 C8B08C00 CALL DWORD PTR DS:[8CB0C8] ; KERNEL32.GetModuleHandleA
008A9705 8B0D C04C8D00 MOV ECX,DWORD PTR DS:[8D4CC0] ****返回这里
008A970B 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
008A970E A1 C04C8D00 MOV EAX,DWORD PTR DS:[8D4CC0]
008A9713 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI
008A9716 75 16 JNZ SHORT 008A972E
008A9718 8D85 B4FEFFFF LEA EAX,DWORD PTR SS:[EBP-14C]
008A971E 50 PUSH EAX
008A971F FF15 D0B08C00 CALL DWORD PTR DS:[8CB0D0] ; KERNEL32.LoadLibraryA
008A9725 8B0D C04C8D00 MOV ECX,DWORD PTR DS:[8D4CC0]
008A972B 89040E MOV DWORD PTR DS:[ESI+ECX],EAX
008A972E A1 C04C8D00 MOV EAX,DWORD PTR DS:[8D4CC0]
008A9733 393C06 CMP DWORD PTR DS:[ESI+EAX],EDI
008A9736 0F84 AD000000 JE 008A97E9 *** Magic Jump 改为了JMP
008A973C 33C9 XOR ECX,ECX
008A973E 8B03 MOV EAX,DWORD PTR DS:[EBX]
008A9740 3938 CMP DWORD PTR DS:[EAX],EDI
008A9742 74 06 JE SHORT 008A974A
下面内存访问 断点得到OEP
我找到的“test”文件的OEP是:
10004979 55 PUSH EBP ***OEP处
1000497A 8BEC MOV EBP,ESP
1000497C 53 PUSH EBX
1000497D 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
10004980 56 PUSH ESI
10004981 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
10004984 57 PUSH EDI
10004985 8B7D 10 MOV EDI,DWORD PTR SS:[EBP+10]
10004988 85F6 TEST ESI,ESI
1000498A 75 09 JNZ SHORT mytest.10004995
1000498C 833D 60D10010 00 CMP DWORD PTR DS:[1000D160],0
10004993 EB 26 JMP SHORT mytest.100049BB
10004995 83FE 01 CMP ESI,1
10004998 74 05 JE SHORT mytest.1000499F
再下面dump时出错了。
老大的例子是可以完全dump的呀,为什么我的这个DLL就不能呢?
放上附件给验证
附件:test.rar