hj2008mt 发表于 2008-4-27 09:22:48

手脱SoftSentry 2.11 -> 20/20 Software

【破文标题】手脱SoftSentry 2.11 -> 20/20 Software
【破文作者】王者之剑
【作者邮箱】[email protected]
【作者主页】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 , al
00439EA0    90            nop
00439EA1    9E            sahf
00439EA2    0300            add   eax, dword ptr
00439EA4    0000            add   byte ptr , al
00439EA6    40            inc   eax
00439EA7    00C1            add   cl, al
00439EA9    00F8            add   al, bh
00439EAB    2101            and   dword ptr , eax
00439EAD    0066 3D         add   byte ptr , ah
00439EB0    0100            add   dword ptr , eax
00439EB2    66:3D 0100      cmp   ax, 1

我们F8往下跟吧.

0043A032   /0F85 2E000000   jnz   0043A066
0043A038   |33C0            xor   eax, eax
0043A03A   |66:A1 322D4400mov   ax, word ptr
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
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 , 0
0043A072    0F84 16000000   je      0043A08E
0043A078    8B4D B0         mov   ecx, dword ptr
0043A07B    E8 402C0000   call    0043CCC0
0043A080    8945 B0         mov   dword ptr , eax
0043A083    8B4D B0         mov   ecx, dword ptr
0043A086    E8 F52C0000   call    0043CD80



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

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


0043A032   /0F85 2E000000   jnz   0043A066
0043A038   |33C0            xor   eax, eax
0043A03A   |66:A1 322D4400mov   ax, word ptr
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
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 322D4400mov   ax, word ptr
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 , al
00439EA0    90            nop
00439EA1    9E            sahf
00439EA2    0300            add   eax, dword ptr
00439EA4    0000            add   byte ptr , al
00439EA6    40            inc   eax
00439EA7    00C1            add   cl, al
00439EA9    00F8            add   al, bh
00439EAB    2101            and   dword ptr , eax
00439EAD    0066 3D         add   byte ptr , ah
00439EB0    0100            add   dword ptr , eax
00439EB2    66:3D 0100      cmp   ax, 1

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

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

[ 本帖最后由 hj2008mt 于 2008-4-27 09:25 编辑 ]
页: [1]
查看完整版本: 手脱SoftSentry 2.11 -> 20/20 Software