icer2 发表于 2010-1-16 08:40

【I.C.K伴你一同成长第一期】MoleBox V2.X 脱壳

本帖最后由 icer2 于 2010-1-17 01:39 编辑

大家好.. 我是新来的icer2前两天开始学习的破解技术..

写此文仅供自己记录, 各位大牛就直接Pass~~ 吧..


入口很奇怪, 和一般的壳不一样..
00417B23 >E8 00000000   call UnPack__.00417B28
00417B28    60            pushad
00417B29    E8 4F000000   call UnPack__.00417B7D
00417B2E    26:A7         cmps dword ptr es:,dword ptr es:[ed>
00417B30    93            xchg eax,ebx
00417B31    895A 12         mov dword ptr ds:,ebx
00417B34    44            inc esp
00417B35    8577 8F         test dword ptr ds:,esi
00417B38    ED            in eax,dx
00417B39    0B30            or esi,dword ptr ds:
00417B3B    7F 1B         jg short UnPack__.00417B58
00417B3D    3864D4 F9       cmp byte ptr ss:,ah


先试下ESP定律..      ok到这...继续走..F7进 Call
004176FC    894424 24       mov dword ptr ss:,eax
00417700    61            popad
00417701    58            pop eax
00417702    58            pop eax
00417703    FFD0            call eax
00417705    E8 A9C40000   call UnPack__.00423BB3
0041770A    CC            int3
0041770B    CC            int3
0041770C    CC            int3
0041770D    CC            int3
0041770E    CC            int3
0041770F    CC            int3
00417710    0000            add byte ptr ds:,al
00417712    0000            add byte ptr ds:,al
00417714    90            nop
00417715    1E            push ds



OK 到了我们经典的OEP...
004010CC    55            push ebp
004010CD    8BEC            mov ebp,esp
004010CF    83EC 44         sub esp,44
004010D2    56            push esi
004010D3    FF15 00514100   call dword ptr ds:               ; kernel32.GetCommandLineA
004010D9    8BF0            mov esi,eax
004010DB    8A00            mov al,byte ptr ds:
004010DD    3C 22         cmp al,22
004010DF    75 13         jnz short UnPack__.004010F4
004010E1    46            inc esi
004010E2    8A06            mov al,byte ptr ds:
004010E4    84C0            test al,al
004010E6    74 04         je short UnPack__.004010EC
004010E8    3C 22         cmp al,22
004010EA^ 75 F5         jnz short UnPack__.004010E1
004010EC    803E 22         cmp byte ptr ds:,22
004010EF    75 0D         jnz short UnPack__.004010FE
004010F1    46            inc esi
004010F2    EB 0A         jmp short UnPack__.004010FE
004010F4    3C 20         cmp al,20
004010F6    7E 06         jle short UnPack__.004010FE
004010F8    46            inc esi


OK 脱壳成功..    有无效指针 直接减掉.如果不减掉的话. 关闭程序后会弹出错误提示...


再试下内存断点法...

内存映射,项目 23
地址=00415000
大小=00001000 (4096.)
物主=UnPack__ 00400000
区段=2
类型=Imag 01001002
访问=R
初始访问=RWE

下段.   

再下
内存映射,项目 22
地址=00401000
大小=0000D000 (53248.)
物主=UnPack__ 00400000
区段=0
包含=code
类型=Imag 01001004
访问=RW
初始访问=RWE


004010CC    55            push ebp
004010CD    8BEC            mov ebp,esp
004010CF    83EC 44         sub esp,44
004010D2    56            push esi
004010D3    FF15 00514100   call dword ptr ds:               ; kernel32.GetCommandLineA
004010D9    8BF0            mov esi,eax
004010DB    8A00            mov al,byte ptr ds:
004010DD    3C 22         cmp al,22
004010DF    75 13         jnz short UnPack__.004010F4
004010E1    46            inc esi
004010E2    8A06            mov al,byte ptr ds:
004010E4    84C0            test al,al
004010E6    74 04         je short UnPack__.004010EC
004010E8    3C 22         cmp al,22
004010EA^ 75 F5         jnz short UnPack__.004010E1
004010EC    803E 22         cmp byte ptr ds:,22
004010EF    75 0D         jnz short UnPack__.004010FE
004010F1    46            inc esi
004010F2    EB 0A         jmp short UnPack__.004010FE
004010F4    3C 20         cmp al,20



直接到达OEP....   脱壳。修复 成功。


总结: 借鉴一下小生老师的话 "在你还很懵懂的时候, 可以多下内存断点, 最好全都下一下试试"

Ps: 很简单的脱壳..还是得好好学习。

kelvar 发表于 2010-1-16 11:07

MoleBox 这壳难点在于解压资源。个人理解。这样的只是ESP搞对于提高没啥大的帮助

紫色 发表于 2010-1-16 11:42

不过 路过学习一下 我也刚学

313119794 发表于 2010-1-16 12:10

molebox的壳是简单
但是难的就是怎么提取资源

小糊涂虫 发表于 2010-1-16 12:12

看了XIMO牛的MoleBox脱壳动画,才有了点头绪

liaoyl 发表于 2011-7-26 20:49

谢谢分享!学习啦!{:1_921:}
页: [1]
查看完整版本: 【I.C.K伴你一同成长第一期】MoleBox V2.X 脱壳