king6725 发表于 2013-3-17 23:57

KByS V0.28脱壳

本帖最后由 king6725 于 2013-3-17 23:58 编辑

这个壳我也是侥幸脱的,就是不知道原理,为什么我这样就脱成功了。

好吧现在开始说脱壳吧

KByS V0.28这个是它的载入点
01001000 >/$68 659E0101   push notepadx.01019E65
01001005|.E8 01000000   call notepadx.0100100B
0100100A\.C3            retn
0100100B   $C3            retn
0100100C   .60            pushad
0100100D   .8B7424 24   mov esi,dword ptr ss:
01001011   .8B7C24 28   mov edi,dword ptr ss:

按F7单步来到了这里

01019E65    B8 779E0100   mov eax,0x19E77
01019E6A    BA 00000001   mov edx,notepadx.01000000
01019E6F    03C2            add eax,edx
01019E71    FFE0            jmp eax

然后直接在短尾retn处下F4断

01019F80    50            push eax
01019F81    55            push ebp
01019F82    FF53 04         call dword ptr ds:
01019F85    AB            stos dword ptr es:
01019F86^ EB D8         jmp Xnotepadx.01019F60
01019F88    5D            pop ebp
01019F89    5F            pop edi
01019F8A    C3            retn

然后进入

7C809B84 >8BFF            mov edi,edi                              ; notepadx.<ModuleEntryPoint>
7C809B86    55            push ebp
7C809B87    8BEC            mov ebp,esp
7C809B89    FF75 10         push dword ptr ss:
7C809B8C    FF75 0C         push dword ptr ss:
7C809B8F    FF75 08         push dword ptr ss:
7C809B92    6A FF         push -0x1
7C809B94    E8 09000000   call kernel32.VirtualFreeEx
7C809B99    5D            pop ebp
7C809B9A    C2 0C00         retn 0xC

再内存镜像里面在code段下F2断再F9

0100739D      6A            db 6A                                    ;CHAR 'j'
0100739E      70            db 70                                    ;CHAR 'p'
0100739F      68            db 68                                    ;CHAR 'h'
010073A0      98            db 98
010073A1      18            db 18
010073A2      00            db 00
010073A3      01            db 01
010073A4      E8            db E8
010073A5      BF            db BF
010073A6      01            db 01
010073A7      00            db 00
010073A8      00            db 00
010073A9      33            db 33                                    ;CHAR '3'
010073AA      DB            db DB
010073AB      53            db 53                                    ;CHAR 'S'
010073AC      8B            db 8B
010073AD      3D            db 3D                                    ;CHAR '='

出现乱码,这里就是oep 直接在分析里面删除模块分析就可以看到代码了。


---------------------------------------------以下是我的疑问-----------------------------------------

顺便又那个大神能不能告诉我。为什么我不能在5个跑飞点下断。

retn处下F4断

01019F7B    25 FFFFFF7F   and eax,0x7FFFFFFF      //F4跑飞了
01019F80    50            push eax                               //F4跑飞了
01019F81    55            push ebp                               //F4跑飞了
01019F82    FF53 04         call dword ptr ds:   //F4跑飞了
01019F85    AB            stos dword ptr es:            //F4跑飞了
01019F86^ EB D8         jmp Xnotepadx.01019F60
01019F88    5D            pop ebp                                 //F4可以下断
01019F89    5F            pop edi                                 //F4可以下断
01019F8A    C3            retn

-----------------------------------------------------------------------------------------------
多多留言给我增加点知识。


http://pan.baidu.com/share/link?shareid=478484&uk=3241419274

122166 发表于 2013-3-18 08:32

king6725 发表于 2013-3-18 14:42

没有哪位大神来大哥酱油吗。

122166 发表于 2013-3-19 08:22

页: [1]
查看完整版本: KByS V0.28脱壳