| 
注册时间2009-12-2
阅读权限10
最后登录1970-1-1UID63920 周游历练 
 
 该用户从未签到 | 
 
| 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:[0]
 0040100D    64:8925 0000000>mov dword ptr fs:[0],esp
 00401014    33C0            xor eax,eax
 00401016    8908            mov dword ptr ds:[eax],ecx          单步到这一步时会跳走
 00401018    50              push eax
 
 
 7C92E460    8B1C24       mov ebx,dword ptr ss:[esp]             跳到这里了,接着F8
 7C92E463    51           push ecx
 7C92E464    53           push ebx
 7C92E465    E8 E6C40100  call 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 C8EBFFFF  call ntdll.ZwContinue                     到这个CALL一定要进,
 7C92E478    EB 0B        jmp short ntdll.7C92E485
 
 
 
 7C92D040 >  B8 20000000  mov eax,0x20                              进后会来到这里接着走
 7C92D045    BA 0003FE7F  mov edx,0x7FFE0300
 7C92D04A    FF12         call dword ptr ds:[edx]                    到这里要进
 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:[eax+0x10001257]
 010D70DE    8B53 18      mov edx,dword ptr ds:[ebx+0x18]
 010D70E1    52           push edx
 010D70E2    8BE8         mov ebp,eax
 010D70E4    6A 40        push 0x40
 010D70E6    68 00100000  push 0x1000
 010D70EB    FF73 04      push dword ptr ds:[ebx+0x4]
 010D70EE    6A 00        push 0x0
 010D70F0    8B4B 10      mov ecx,dword ptr ds:[ebx+0x10]
 010D70F3    03CA         add ecx,edx
 010D70F5    8B01         mov eax,dword ptr ds:[ecx]
 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:[ebx]
 010D7100    8B43 20      mov eax,dword ptr ds:[ebx+0x20]
 010D7103    03C2         add eax,edx
 010D7105    8B08         mov ecx,dword ptr ds:[eax]
 010D7107    894B 20      mov dword ptr ds:[ebx+0x20],ecx
 010D710A    8B43 1C      mov eax,dword ptr ds:[ebx+0x1C]
 010D710D    03C2         add eax,edx
 010D710F    8B08         mov ecx,dword ptr ds:[eax]
 010D7111    894B 1C      mov dword ptr ds:[ebx+0x1C],ecx
 010D7114    03F2         add esi,edx
 010D7116    8B4B 0C      mov ecx,dword ptr ds:[ebx+0xC]
 010D7119    03CA         add ecx,edx
 010D711B    8D43 1C      lea eax,dword ptr ds:[ebx+0x1C]
 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:[ebx+0x8]
 010D7128    8BF8         mov edi,eax
 010D712A    52           push edx
 010D712B    8BF0         mov esi,eax
 010D712D    8B46 FC      mov eax,dword ptr ds:[esi-0x4]
 010D7130    83C0 04      add eax,0x4
 010D7133    2BF0         sub esi,eax
 010D7135    8956 08      mov dword ptr ds:[esi+0x8],edx
 010D7138    8B4B 0C      mov ecx,dword ptr ds:[ebx+0xC]
 010D713B    894E 14      mov dword ptr ds:[esi+0x14],ecx
 010D713E    FFD7         call edi
 
 010D7140    8985 3F13001>mov dword ptr ss:[ebp+0x1000133F],eax
 010D7146    8BF0         mov esi,eax
 010D7148    8B4B 14      mov ecx,dword ptr ds:[ebx+0x14]
 010D714B    5A           pop edx
 010D714C    EB 0C        jmp short lhc.010D715A
 010D714E    03CA         add ecx,edx
 010D7150    68 00800000  push 0x8000
 010D7155    6A 00        push 0x0
 010D7157    57           push edi
 010D7158    FF11         call dword ptr ds:[ecx]
 010D715A    8BC6         mov eax,esi
 010D715C    5A           pop edx
 010D714E    03CA         add ecx,edx
 010D7150    68 00800000  push 0x8000
 010D7155    6A 00        push 0x0
 010D7157    57           push edi
 010D7158    FF11         call dword ptr ds:[ecx]
 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 7C678500  mov eax,lhc.0085677C
 008576EF    E8 7C0ABBFF  call lhc.00408170
 008576F4    33C0         xor eax,eax
 008576F6    55           push ebp
 | 
 |