首页
社区
课程
招聘
[原创]手脱SoftSentry 2.11 -> 20/20 Software
发表于: 2008-4-27 09:25 3657

[原创]手脱SoftSentry 2.11 -> 20/20 Software

2008-4-27 09:25
3657
【破文标题】手脱SoftSentry 2.11 -> 20/20 Software
【破文作者】王者之剑
【作者邮箱】[email]hj2008mt@163.com[/email]
【作者主页】www.chinapojie.cn
【破解工具】ImportREC,LordPE,OD
【破解平台】XP
【破解声明】这个壳很少见,我也是最近才看到的,感觉很有趣才写下这编破文,如有不对之处还请大侠们纠正,最好是不要用砖头砸我,理解一下偶也是个新手,呵呵!

现在我们开始吧.....

先用PEID查一下,起码要做的,呵呵.

发现是SoftSentry 2.11 -> 20/20 Software,倒,说实在的第一次看到,之前没看到过,但这个壳很好玩的说,呵呵!

再用OD载入吧.下面是入口点.

00439E90 >  55              push    ebp
00439E91    8BEC            mov     ebp, esp
00439E93    83EC 64         sub     esp, 64
00439E96    53              push    ebx
00439E97    56              push    esi
00439E98    57              push    edi
00439E99    E9 50000000     jmp     00439EEE
00439E9E    0000            add     byte ptr [eax], al
00439EA0    90              nop
00439EA1    9E              sahf
00439EA2    0300            add     eax, dword ptr [eax]
00439EA4    0000            add     byte ptr [eax], al
00439EA6    40              inc     eax
00439EA7    00C1            add     cl, al
00439EA9    00F8            add     al, bh
00439EAB    2101            and     dword ptr [ecx], eax
00439EAD    0066 3D         add     byte ptr [esi+3D], ah
00439EB0    0100            add     dword ptr [eax], eax
00439EB2    66:3D 0100      cmp     ax, 1

我们F8往下跟吧.

0043A032   /0F85 2E000000   jnz     0043A066
0043A038   |33C0            xor     eax, eax
0043A03A   |66:A1 322D4400  mov     ax, word ptr [442D32]
0043A040   |F6C4 10         test    ah, 10
0043A043   |0F84 1D000000   je      0043A066
0043A049   |6A 00           push    0
0043A04B   |68 03800000     push    8003
0043A050   |68 11010000     push    111
0043A055   |A1 802C4400     mov     eax, dword ptr [442C80]
0043A05A   |50              push    eax
0043A05B   |FF15 94344400   call    dword ptr [<&USER32.SendMessageA>; USER32.SendMessageA
0043A061   |E9 05000000     jmp     0043A06B
0043A066   \E8 15060000     call    0043A680
0043A06B    833D 70F14300 0>cmp     dword ptr [43F170], 0
0043A072    0F84 16000000   je      0043A08E
0043A078    8B4D B0         mov     ecx, dword ptr [ebp-50]
0043A07B    E8 402C0000     call    0043CCC0
0043A080    8945 B0         mov     dword ptr [ebp-50], eax
0043A083    8B4D B0         mov     ecx, dword ptr [ebp-50]
0043A086    E8 F52C0000     call    0043CD80

跟到上面的一个CALL时我们发现程序会运行起来,这样就无法跟下去,那我们就要想办法了,呵呵.我们再来一次.但

是一定要记得刚才是到哪里运行的,要不会错过的,呵呵.

0043A032   /0F85 2E000000   jnz     0043A066
0043A038   |33C0            xor     eax, eax
0043A03A   |66:A1 322D4400  mov     ax, word ptr [442D32]
0043A040   |F6C4 10         test    ah, 10
0043A043   |0F84 1D000000   je      0043A066
0043A049   |6A 00           push    0
0043A04B   |68 03800000     push    8003
0043A050   |68 11010000     push    111
0043A055   |A1 802C4400     mov     eax, dword ptr [442C80]
0043A05A   |50              push    eax
0043A05B   |FF15 94344400   call    dword ptr [<&USER32.SendMessageA>; USER32.SendMessageA
0043A061   |E9 05000000     jmp     0043A06B

到上面的位置后我们将下面两处nop掉.再往下跟

0043A032   /0F85 2E000000   jnz     0043A066
0043A043   |0F84 1D000000   je      0043A066

我们NOP后的效果大家看一下是不是这样的:

0043A02F    F6C4 C0         test    ah, 0C0
0043A032    90              nop
0043A033    90              nop
0043A034    90              nop
0043A035    90              nop
0043A036    90              nop
0043A037    90              nop
0043A038    33C0            xor     eax, eax
0043A03A    66:A1 322D4400  mov     ax, word ptr [442D32]
0043A040    F6C4 10         test    ah, 10
0043A043    90              nop
0043A044    90              nop
0043A045    90              nop
0043A046    90              nop
0043A047    90              nop
0043A048    90              nop
0043A049    6A 00           push    0
0043A04B    68 03800000     push    8003

再我们跟到下面的地方再查找二进制字串符FF D7 6A 00
0043A049    6A 00           push    0

我们查到后可以看到以下代码

0043A3AB    FFD7            call    edi
0043A3AD    6A 00           push    0
0043A3AF    68 28F34300     push    0043F328                         ; ASCII "softSENTRY"
0043A3B4    68 18F34300     push    0043F318                         ; ASCII "Failed to run!"
0043A3B9    6A 00           push    0
0043A3BB    FF15 84344400   call    dword ptr [<&USER32.MessageBoxA>>; USER32.MessageBoxA
0043A3C1    5F              pop     edi
0043A3C2    5E              pop     esi
0043A3C3    C2 0400         retn    4

那我们就在

0043A3AB    FFD7            call    edi

在上面这里下段.
跟进我们这里就到了OEP了,下面的就不用我说了,呵呵!!

00439E90 >  55              push    ebp
00439E91    8BEC            mov     ebp, esp
00439E93    83EC 64         sub     esp, 64
00439E96    53              push    ebx
00439E97    56              push    esi
00439E98    57              push    edi
00439E99    E9 50000000     jmp     00439EEE
00439E9E    0000            add     byte ptr [eax], al
00439EA0    90              nop
00439EA1    9E              sahf
00439EA2    0300            add     eax, dword ptr [eax]
00439EA4    0000            add     byte ptr [eax], al
00439EA6    40              inc     eax
00439EA7    00C1            add     cl, al
00439EA9    00F8            add     al, bh
00439EAB    2101            and     dword ptr [ecx], eax
00439EAD    0066 3D         add     byte ptr [esi+3D], ah
00439EB0    0100            add     dword ptr [eax], eax
00439EB2    66:3D 0100      cmp     ax, 1

【破解总结】这个壳不错,很好玩....

很少写破文,写得有问题的地方请大家提示一下,谢谢了!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 47147
活跃值: (20470)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
恭喜你进了一步
2008-4-27 11:21
0
雪    币: 142
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
谢谢大,以后会更爱学习的!!
2008-4-27 13:09
0
游客
登录 | 注册 方可回帖
返回
//