飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3025|回复: 0

[原创] PECompact 2.5 Retail单步脱

[复制链接]

该用户从未签到

发表于 2010-11-14 22:41:20 | 显示全部楼层 |阅读模式
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
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表