push ebp mov ebp, esp add esp, 0ffffffd8 push edi push esi push ebx mov esi, [ebp+0000000c] mov edi, [ebp+00000010] mov ebx, [ebp+0000000c] add ebx, [ebp+00000014] mov dword ptr [ebp-00000020], 00000000 @loop1: push 0000001c lea eax, [ebp-0000001c] push eax push esi push dword ptr [ebp+00000008] call dword ptr [0044D208] ;kernel32.VirtualQueryEx cmp eax, 0000001c je @loop2 jmp @loop6 @loop2: mov ecx, [ebp-0000001c] add ecx, [ebp-00000010] cmp ebx, ecx jbe @loop3 sub ecx, esi jmp @loop4 @loop3: mov ecx, ebx sub ecx, esi @loop4: mov [ebp-00000028], ecx cmp dword ptr [ebp-0000000c], 00001000 jnz @loop5 lea eax, [ebp-00000028] push eax push ecx push edi push esi push dword ptr [ebp+00000008] call dword ptr [0044D238] ; kernel32.ReadProcessMemory or eax, eax jnz @loop5 jmp @loop6 @loop5: add esi, [ebp-00000028] add edi, [ebp-00000028] cmp esi, ebx jnz @loop1 mov dword ptr [ebp-00000020], 00000001 mov ecx, [ebp+00000018] or ecx, ecx je @loop6 push dword ptr [ebp+00000014] pop dword ptr [ecx] @loop6: mov eax, [ebp-00000020] pop ebx pop esi pop edi leave ret 0014
我把我脱壳后的原始 ImportREC v1.6 final 和根据上面的两位的补丁代码用 dup 做的补丁都作为附件发上来,各位可以自己选择用哪个补丁来进行 patch。另外附上汉化补丁,打上就是汉化版本。下面是文件列表:
ImportREC.exe:
脱壳后的原始 ImportREC v1.6 final 文件.
importrec.1.6.final.for.98_NT-patch.exe:
1. Fixed RestoreLastError API set to SetLastError for WinXP/Vista compatibility (by MaRKuS_TH-DJM)
2. user32.dll is always read from the system, prevents a crash from corrupted PE of user32.dll (by MaRKuS_TH-DJM)
importrec.1.6.final.for.NT-patch.exe:
1. Fixed RestoreLastError API set to SetLastError for WinXP/Vista compatibility (by MaRKuS_TH-DJM)
2. user32.dll is always read from the system, prevents a crash from corrupted PE of user32.dll (by MaRKuS_TH-DJM)
3. Fixed Vista64 crash bug (by jstorme)
注意:如果你用这个补丁的话,ImportREC 在 NT 系统(如2000/XP等)下应该工作正常,不过Win98 下无法正确获取 user32.dll 中的 API。
importrec.1.6.final.汉化补丁.exe:
这个汉化补丁是用于我脱壳的原始 ImportREC 1.6 final 版本的,打上这个补丁后就是汉化版。
[QUOTE=heXer;422557]jmp dword ptr [esp-00000018] ;this code can't be asm correctly in OD, you must input it in OD manual
没懂这句的意思[/QUOTE]
这句用插件编译后在OD中是 jmp 00000000,要自己在OD中手工输入 jmp dword ptr [esp-00000018]