首页
社区
课程
招聘
一未知壳的脱壳过程
发表于: 2006-7-28 18:09 4344

一未知壳的脱壳过程

2006-7-28 18:09
4344
一同学给了我一个自己加过壳的“老板键试用版”让我来CRACK掉!!
    我习惯性的将它用PEID查壳!显示为Nothing found [Overlay] *
  无奈只有手脱,但本人脱壳技术实在欠佳!这次仅将脱壳过程记录下来!希望各为高手指教!
    用OD加载程序来到:
006CC000 >  68 514D1B00     push    1B4D51
006CC005    58              pop     eax
006CC006    68 20C06C00     push    006CC020
006CC00B    5E              pop     esi
006CC00C    BF C4060000     mov     edi, 6C4
006CC011    FF343E          push    dword ptr [esi+edi]
006CC014    310424          xor     [esp], eax
006CC017    8F043E          pop     dword ptr [esi+edi]
006CC01A    83EF 02         sub     edi, 2
006CC01D    83EF 02         sub     edi, 2
006CC020  ^ 75 EF           jnz     short 006CC011
006CC022    90              nop
006CC023    90              nop
006CC024    B9 301A0051     mov     ecx, 51001A30
006CC029    4D              dec     ebp
006CC02A    1B00            sbb     eax, [eax]
006CC02C    51              push    ecx
006CC02D    4D              dec     ebp
006CC02E    5B              pop     ebx
006CC02F    007A 70         add     [edx+70], bh
006CC032    04 00           add     al, 0
006CC034    9B              wait
006CC035    C7              ???                                      ; 未知命令
006CC036    16              push    ss

    用F8跟到006CC022  90      nop处时006CC024 代码变为:call 006CC1A6我们F7跟进去:
006CC1A6    55              push    ebp
006CC1A7    8BEC            mov     ebp, esp
006CC1A9    81C4 B4FEFFFF   add     esp, -14C
006CC1AF    C645 F7 00      mov     byte ptr [ebp-9], 0
006CC1B3    8BC5            mov     eax, ebp
006CC1B5    83C0 04         add     eax, 4
006CC1B8    8B10            mov     edx, [eax]
006CC1BA    83EA 05         sub     edx, 5
006CC1BD    8955 FC         mov     [ebp-4], edx
006CC1C0    8B4D FC         mov     ecx, [ebp-4]
006CC1C3    81C1 84000000   add     ecx, 84
006CC1C9    894D F8         mov     [ebp-8], ecx
006CC1CC    8B45 FC         mov     eax, [ebp-4]
006CC1CF    8B50 0C         mov     edx, [eax+C]
006CC1D2    8B4D FC         mov     ecx, [ebp-4]
006CC1D5    0351 08         add     edx, [ecx+8]
006CC1D8    8BC5            mov     eax, ebp
006CC1DA    83C0 04         add     eax, 4
006CC1DD    8910            mov     [eax], edx
006CC1DF    FF75 F8         push    dword ptr [ebp-8]
006CC1E2    FF75 FC         push    dword ptr [ebp-4]
006CC1E5    8D55 BC         lea     edx, [ebp-44]
006CC1E8    52              push    edx
006CC1E9    E8 78000000     call    006CC266
006CC1EE    84C0            test    al, al
006CC1F0    74 6D           je      short 006CC25F
006CC1F2    FF75 F8         push    dword ptr [ebp-8]
006CC1F5    8D4D BC         lea     ecx, [ebp-44]
006CC1F8    51              push    ecx
006CC1F9    8D85 B4FEFFFF   lea     eax, [ebp-14C]
006CC1FF    50              push    eax
006CC200    E8 05020000     call    006CC40A
006CC205    84C0            test    al, al
006CC207    74 23           je      short 006CC22C
006CC209    66:83BD B4FEFFF>cmp     word ptr [ebp-14C], 6
006CC211    72 19           jb      short 006CC22C
006CC213    FF75 F8         push    dword ptr [ebp-8]
006CC216    FF75 FC         push    dword ptr [ebp-4]
006CC219    8D55 BC         lea     edx, [ebp-44]
006CC21C    52              push    edx
006CC21D    8D8D B6FEFFFF   lea     ecx, [ebp-14A]
006CC223    51              push    ecx
006CC224    E8 51020000     call    006CC47A
006CC229    8845 F7         mov     [ebp-9], al
006CC22C    807D F7 00      cmp     byte ptr [ebp-9], 0
006CC230    75 2D           jnz     short 006CC25F
006CC232    FF75 FC         push    dword ptr [ebp-4]
006CC235    8D45 BC         lea     eax, [ebp-44]
006CC238    50              push    eax
006CC239    8D95 B6FEFFFF   lea     edx, [ebp-14A]
006CC23F    52              push    edx
006CC240    E8 81020000     call    006CC4C6
006CC245    84C0            test    al, al
006CC247    74 16           je      short 006CC25F
006CC249    FF75 F8         push    dword ptr [ebp-8]
006CC24C    FF75 FC         push    dword ptr [ebp-4]
006CC24F    8D4D BC         lea     ecx, [ebp-44]
006CC252    51              push    ecx
006CC253    8D85 B6FEFFFF   lea     eax, [ebp-14A]
006CC259    50              push    eax
006CC25A    E8 1B020000     call    006CC47A
006CC25F    8BE5            mov     esp, ebp
006CC261    5D              pop     ebp
006CC262    C3              retn

    往下一直跟到返回RETN时的代码F8一次!来到:
005F3D2B    9C              pushfd
005F3D2C    60              pushad
005F3D2D    E8 00000000     call    005F3D32
005F3D32    5D              pop     ebp
005F3D33    83ED 07         sub     ebp, 7
005F3D36    8D85 25FCFFFF   lea     eax, [ebp-3DB]
005F3D3C    8038 01         cmp     byte ptr [eax], 1
005F3D3F    0F84 42020000   je      005F3F87
005F3D45    C600 01         mov     byte ptr [eax], 1
005F3D48    8BD5            mov     edx, ebp
005F3D4A    2B95 B9FBFFFF   sub     edx, [ebp-447]
005F3D50    8995 B9FBFFFF   mov     [ebp-447], edx
005F3D56    0195 E9FBFFFF   add     [ebp-417], edx
005F3D5C    8DB5 2DFCFFFF   lea     esi, [ebp-3D3]
005F3D62    0116            add     [esi], edx

    在005F3D2B处看到PUSHFD往下总觉得眼熟,便在这里DUMP出来,
    用PEID查得:NsPacK V3.4-V3.5 -> LiuXingPing *
    呵呵!用ESP定律脱壳便可!
    我跟得有没有什么问题?还请各位指点!
    说出来不怕大家笑!这是我第一次跟踪脱壳,而且我也不懂什么汇编语言!总是凭感觉来跟!只要感觉到了OEP时就DUMP也不管什么输入表的修复!我学汇编语言总觉得云里雾里!大家帮我指条明路吧!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
最初由 美丽破船 发布
在005F3D2B处看到PUSHFD往下总觉得眼熟,便在这里DUMP出来,


这里不是OEP,像双层壳,你再继续跟下去。
2006-7-28 18:22
0
雪    币: 65
活跃值: (811)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
最初由 kanxue 发布
这里不是OEP,像双层壳,你再继续跟下去。

哦!是,这里不是OEP,但用ESP定律就可以继续脱了,很简单!所以我没有列出来!
脱壳后用PEID查的结果是:BC
并且可以用W32Dasm分析了!
多谢!
2006-7-28 19:07
0
游客
登录 | 注册 方可回帖
返回
//