秋之夜 发表于 2008-8-23 11:50:43

菜鸟关于手脱PECompact 2.x的求助。。

程序名称:神手数字3
版本:1.6

PEID查壳:PECompact 2.x -> Jeremy Collake
用Ollydbg载入,忽略所有的异常选项


00401000 > $B8 540C6A00   mov   eax, 006A0C54 //OD载入停在这里
00401005   .50            push    eax
00401006   .64:FF35 00000>push    dword ptr fs:
0040100D   .64:8925 00000>mov   dword ptr fs:, esp
00401014   .33C0          xor   eax, eax
00401016   .8908          mov   dword ptr , ecx
00401018   .50            push    eax

下断:BP 006A0C54,然后F9运行,程序被断下

006A0C54    B8 D9F969F0   mov   eax, F069F9D9
006A0C59    8D88 9E120010   lea   ecx, dword ptr
006A0C5F    8941 01         mov   dword ptr , eax
006A0C62    8B5424 04       mov   edx, dword ptr
006A0C66    8B52 0C         mov   edx, dword ptr
006A0C69    C602 E9         mov   byte ptr , 0E9
006A0C6C    83C2 05         add   edx, 5
006A0C6F    2BCA            sub   ecx, edx
006A0C71    894A FC         mov   dword ptr , ecx
006A0C74    33C0            xor   eax, eax
006A0C76    C3            retn
006A0C77    B8 78563412   mov   eax, 12345678//下断 F2

取消006A0C54断点,然后在006A0C77下断点,F9运行,F8往下

006A0C7C    64:8F05 0000000>pop   dword ptr fs:
006A0C83    83C4 04         add   esp, 4
006A0C86    55            push    ebp
006A0C87    53            push    ebx
006A0C88    51            push    ecx
.........
006A0CEC    8B4B 0C         mov   ecx, dword ptr
006A0CEF    894E 14         mov   dword ptr , ecx
006A0CF2    FFD7            call    edi       //程序到此跳转到别处。无法继续下走

006A0CF4    8985 3F130010   mov   dword ptr , eax
006A0CFA    8BF0            mov   esi, eax
006A0CFC    8B4B 14         mov   ecx, dword ptr
006A0CFF    5A            pop   edx
006A0D00    EB 0C         jmp   short 006A0D0E
006A0D02    03CA            add   ecx, edx
006A0D04    68 00800000   push    8000
006A0D09    6A 00         push    0
006A0D0B    57            push    edi
006A0D0C    FF11            call    dword ptr
006A0D0E    8BC6            mov   eax, esi
006A0D10    5A            pop   edx
006A0D11    5E            pop   esi
006A0D12    5F            pop   edi
006A0D13    59            pop   ecx
006A0D14    5B            pop   ebx
006A0D15    5D            pop   ebp
006A0D16    FFE0            jmp   eax   //依照网上脱壳方法的判断这里应该是正确的OEP

眼看这就要到达目的地,却在中途被劫,实在郁闷。。只好请教各位大佬。。。。


手脱不成,曾尝试用脱壳机unpecomp2、PECompact Unpacker脱壳后均显示成功,
但脱壳后的程序无法运行,显示EIP错误。。无法进行后期的追码动作。。

个人感觉应该是不难,可是总也找不到方法,所以只能放上来希望大家指点。

[ 本帖最后由 秋之夜 于 2008-8-23 11:54 编辑 ]

秋之夜 发表于 2008-8-23 11:53:54

在网上找到一篇该软件脱壳的文:

可是按照他的步骤走到最后一步也是不行

网络原文:

过程:设置Ollydbg忽略所有的异常选项。od载入
00401000 > B8 540C6A00 MOV EAX,ss3dp3.006A0C54
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

第一步:下断点:BP VirtualFree。中断后,取消断点,Alt+F9。

00C00AD5 5F POP EDI //返回到这里
00C00AD6 8BC6 MOV EAX,ESI
00C00AD8 5E POP ESI
00C00AD9 5D POP EBP
00C00ADA 5B POP EBX

然后,ctrl+F ,查找 push 8000(特征码)。

00C00DC4 68 00800000 PUSH 8000
00C00DC9 6A 00 PUSH 0
00C00DCB FFB5 551F0010 PUSH DWORD PTR SS:
00C00DD1 FF95 691F0010 CALL DWORD PTR SS:
00C00DD7 8B46 0C MOV EAX,DWORD PTR DS:
00C00DDA 03C7 ADD EAX,EDI
00C00DDC 5D POP EBP
00C00DDD 5E POP ESI
00C00DDE 5F POP EDI
00C00DDF 5B POP EBX
00C00DE0 C3 RETN //在这里按F2下断点

F9 ,运行,此时断了。单步f8,来到

006A0CF4 8985 3F130010 MOV DWORD PTR SS:,EAX ; ss3dp3.005F935C
006A0CFA 8BF0 MOV ESI,EAX
006A0CFC 8B4B 14 MOV ECX,DWORD PTR DS:
006A0CFF 5A POP EDX
006A0D00 EB 0C JMP SHORT ss3dp3.006A0D0E
006A0D02 03CA ADD ECX,EDX
006A0D04 68 00800000 PUSH 8000
006A0D09 6A 00 PUSH 0
006A0D0B 57 PUSH EDI
006A0D0C FF11 CALL DWORD PTR DS:
006A0D0E 8BC6 MOV EAX,ESI
006A0D10 5A POP EDX
006A0D11 5E POP ESI
006A0D12 5F POP EDI
006A0D13 59 POP ECX
006A0D14 5B POP EBX
006A0D15 5D POP EBP
006A0D16 FFE0 JMP EAX //跳到OEP


我的操作步骤:

下断点:BP VirtualFree,F9后
763C1866 >8BFF            mov   edi, edi
763C1868    55            push    ebp
763C1869    8BEC            mov   ebp, esp
763C186B    FF75 10         push    dword ptr
763C186E    FF75 0C         push    dword ptr
763C1871    FF75 08         push    dword ptr

取消断点,Alt+F9。这里与教材上的地址就不相符了,但是内容却一样。

01790AD5    5F            pop   edi//返回到这里
01790AD6    8BC6            mov   eax, esi
01790AD8    5E            pop   esi
01790AD9    5D            pop   ebp
01790ADA    5B            pop   ebx

   然后,ctrl+F ,查找 push 8000(特征码)。

01790ACB    68 00800000   push    8000
01790AD0    6A 00         push    0
01790AD2    55            push    ebp
01790AD3    FFD1            call    ecx
01790AD5    5F            pop   edi
01790AD6    8BC6            mov   eax, esi
01790AD8    5E            pop   esi
01790AD9    5D            pop   ebp
01790ADA    5B            pop   ebx
01790ADB    83C4 10         add   esp, 10
01790ADE    C2 0C00         retn    0C

到此没法在下断了,完全与教材不符,也是就差最后一步。
教材上也是跳完这次就可以到OEP

[ 本帖最后由 秋之夜 于 2008-8-23 11:56 编辑 ]

小生我怕怕 发表于 2008-8-24 04:12:41

脱了壳后发现这东西效验还真不少,检测的内容太多啦!

秋之夜 发表于 2008-8-24 12:54:00

楼上的兄弟能详细说一下吗

小生我怕怕 发表于 2008-8-24 13:55:49

我帮你弄了一份,剩下的是体力活啦,你自己去搞CRC效验吧!
要是不会可以去看雪找帖子看,那里有讲过这个效验
http://www.rayfile.com/files/1da1573d-71a1-11dd-a2ee-0014221b798a/

秋之夜 发表于 2008-8-24 16:48:32

原帖由 小生我怕怕 于 2008-8-24 13:55 发表 https://www.chinapyg.com/images/common/back.gif
我帮你弄了一份,剩下的是体力活啦,你自己去搞CRC效验吧!
要是不会可以去看雪找帖子看,那里有讲过这个效验
http://www.rayfile.com/files/1da1573d-71a1-11dd-a2ee-0014221b798a/
36720

我用脱壳机脱出来也是这个效果。。原来是还有校验,我晕。。。

我没有看雪的账号,无法搜索帖子,能不能麻烦给个链接。。。我学习一下。。

fuehrer 发表于 2008-9-7 07:58:36

下he eip断,F9,直接到OEP!
用这办法试试!
页: [1]
查看完整版本: 菜鸟关于手脱PECompact 2.x的求助。。