xtaymimk 发表于 2010-11-14 22:41:20

PECompact 2.5 Retail单步脱

PECompact 2.5 Retail
这几天没事,研究一个软件,发现是加了PECompact 2.5 Retail的壳,到网上百度了一下,发现无论是有关PECompact 2.5 Retail壳的文章还是动画教程,脱的方法只有一个,就是手脱,于是我就找了一篇文章看了下,是在那个流虫社区看的,写的特别好,按他的方法,我一步步走了下去,可到最后的时候,我发现,文章上所到达的OEP和我到达的OEP不一样,刚开始我以为我走错了,我就又走了几次,发现还是和文章上的OEP不一样,最后我直接脱下来,修复了一下,发现可以运行了,这时我才知道,原来我的也是正确的,下面我把PECompact 2.5 Retail单步脱法给大家演示一下,
载放OD,会停在这里
00401000 >B8 A0700D01   mov eax,lhc.010D70A0            载入后停在这里F8下一步
00401005    50            push eax
00401006    64:FF35 0000000>push dword ptr fs:
0040100D    64:8925 0000000>mov dword ptr fs:,esp
00401014    33C0            xor eax,eax
00401016    8908            mov dword ptr ds:,ecx          单步到这一步时会跳走
00401018    50            push eax


7C92E460    8B1C24       mov ebx,dword ptr ss:             跳到这里了,接着F8
7C92E463    51         push ecx
7C92E464    53         push ebx
7C92E465    E8 E6C40100call ntdll.7C94A950
7C92E46A    0AC0         or al,al
7C92E46C    74 0C      je short ntdll.7C92E47A
7C92E46E    5B         pop ebx
7C92E46F    59         pop ecx
7C92E470    6A 00      push 0x0
7C92E472    51         push ecx
7C92E473    E8 C8EBFFFFcall ntdll.ZwContinue                     到这个CALL一定要进,
7C92E478    EB 0B      jmp short ntdll.7C92E485



7C92D040 >B8 20000000mov eax,0x20                              进后会来到这里接着走
7C92D045    BA 0003FE7Fmov edx,0x7FFE0300
7C92D04A    FF12         call dword ptr ds:                  到这里要进
7C92D04C    C2 0800      retn 0x8

7C92E4F0 >8BD4         mov edx,esp                           进后到这里,
7C92E4F2    0F34         sysenter                              到这一步返回
7C92E4F4 >C3         retn                                    
   
010D70D2    55         push ebp                              返回到这里
010D70D3    53         push ebx                                 接着F8
010D70D4    51         push ecx
010D70D5    57         push edi
010D70D6    56         push esi
010D70D7    52         push edx
010D70D8    8D98 5712001>lea ebx,dword ptr ds:
010D70DE    8B53 18      mov edx,dword ptr ds:
010D70E1    52         push edx
010D70E2    8BE8         mov ebp,eax
010D70E4    6A 40      push 0x40
010D70E6    68 00100000push 0x1000
010D70EB    FF73 04      push dword ptr ds:
010D70EE    6A 00      push 0x0
010D70F0    8B4B 10      mov ecx,dword ptr ds:
010D70F3    03CA         add ecx,edx
010D70F5    8B01         mov eax,dword ptr ds:
010D70F7    FFD0         call eax
010D70F9    5A         pop edx
010D70FA    8BF8         mov edi,eax
010D70FC    50         push eax
010D70FD    52         push edx
010D70FE    8B33         mov esi,dword ptr ds:
010D7100    8B43 20      mov eax,dword ptr ds:
010D7103    03C2         add eax,edx
010D7105    8B08         mov ecx,dword ptr ds:
010D7107    894B 20      mov dword ptr ds:,ecx
010D710A    8B43 1C      mov eax,dword ptr ds:
010D710D    03C2         add eax,edx
010D710F    8B08         mov ecx,dword ptr ds:
010D7111    894B 1C      mov dword ptr ds:,ecx
010D7114    03F2         add esi,edx
010D7116    8B4B 0C      mov ecx,dword ptr ds:
010D7119    03CA         add ecx,edx
010D711B    8D43 1C      lea eax,dword ptr ds:
010D711E    50         push eax
010D711F    57         push edi
010D7120    56         push esi                                 ; lhc.010D645C
010D7121    FFD1         call ecx
010D7123    5A         pop edx                                  ; lhc.00400000
010D7124    58         pop eax
010D7125    0343 08      add eax,dword ptr ds:
010D7128    8BF8         mov edi,eax
010D712A    52         push edx
010D712B    8BF0         mov esi,eax
010D712D    8B46 FC      mov eax,dword ptr ds:
010D7130    83C0 04      add eax,0x4
010D7133    2BF0         sub esi,eax
010D7135    8956 08      mov dword ptr ds:,edx
010D7138    8B4B 0C      mov ecx,dword ptr ds:
010D713B    894E 14      mov dword ptr ds:,ecx
010D713E    FFD7         call edi

010D7140    8985 3F13001>mov dword ptr ss:,eax
010D7146    8BF0         mov esi,eax
010D7148    8B4B 14      mov ecx,dword ptr ds:
010D714B    5A         pop edx
010D714C    EB 0C      jmp short lhc.010D715A
010D714E    03CA         add ecx,edx
010D7150    68 00800000push 0x8000
010D7155    6A 00      push 0x0
010D7157    57         push edi
010D7158    FF11         call dword ptr ds:
010D715A    8BC6         mov eax,esi
010D715C    5A         pop edx
010D714E    03CA         add ecx,edx
010D7150    68 00800000push 0x8000
010D7155    6A 00      push 0x0
010D7157    57         push edi
010D7158    FF11         call dword ptr ds:
010D715A    8BC6         mov eax,esi
010D715C    5A         pop edx
010D715D    5E         pop esi
010D715E    5F         pop edi
010D715F    59         pop ecx
010D7160    5B         pop ebx
010D7161    5D         pop ebp
010D7162- FFE0         jmp eax                                  这里就是传说中的大跳,跳向OEP



008576E4    55         push ebp                         | 然后这里就是传说中的OEP,
008576E5    8BEC         mov ebp,esp                      |他们的章上的OEP是:6A 70               push    70                           
008576E7    83C4 F0      add esp,-0x10                  |
008576EA    B8 7C678500mov eax,lhc.0085677C
008576EF    E8 7C0ABBFFcall lhc.00408170
008576F4    33C0         xor eax,eax
008576F6    55         push ebp
页: [1]
查看完整版本: PECompact 2.5 Retail单步脱