首页
社区
课程
招聘
[原创]学用ESP定律手脱MoleBoxPro2.3.x加壳记事本
发表于: 2005-7-6 11:37 4770

[原创]学用ESP定律手脱MoleBoxPro2.3.x加壳记事本

2005-7-6 11:37
4770
【脱文标题】:学用ESP定律手脱MoleBoxPro2.3.x加壳记事本

【脱文作者】:KuNgBiM[DFCG]

【作者邮箱】:gb_1227@163.com

【软件名称】:加壳记事本(NOTEPAD.exe)

【软件大小】:89.5 KB

【下载地址】:[本地下载] (原出自DFCG群共享)

【软件简介】:MoleBoxPro2.3.x所加壳的记事本

【加密保护】:MoleBoxPro2.3.x -> MoleBox

【编译语言】:Microsoft Visual C++ 5.0

【调试环境】:WinXP、PEiD、Ollydbg、LordPE、ImportREC

【破解日期】:2005-07-06

【破解目的】:推广学习使用ESP定律脱壳

【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

―――――――――――― [PEiD sign] ――――――――――――――

[MoleBoxPro2.3.x -> MoleBox]
signature = E8 00 00 00 00 60 E8 4F 00 00 00
ep_only = true

―――――――――――――――――――――――――――――――――

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【脱壳过程】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

侦壳脱壳:

用PEiD查壳,显示为:“MoleBoxPro2.3.x -> MoleBox *”加壳。当时把我吓了一大跳!
不过没办法,既然是学习脱壳嘛,还是只有继续咯!

BTW:(学习经验是在不断实践中摸索出来的,呵呵~)

使用法宝:

我们既然知道了是MoleBoxPro所加壳保护的,结合前辈的经验拿出Ollydbg结合文章题目手动脱之~~

―――――――――――――――――――――――――――――――――――――――――――――――

设置Ollydbg忽略所有的异常选项,用IsDebug 1.4插件去掉Ollydbg的调试器标志。

Ollydbg载入主程序:

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

010117F3 >  E8 00000000     call NOTEPAD_.010117F8             ; 载入程序后停在这里,F8一次
010117F8    60              pushad                             ; 停在这里,注意查看寄存器窗口
010117F9    E8 4F000000     call NOTEPAD_.0101184D
010117FE    5B              pop ebx
010117FF    8DD5            lea edx,ebp                        ; 非法使用寄存器
01011801    C052 57 9F      rcl byte ptr ds:[edx+57],9F
01011805    A2 849B430D     mov byte ptr ds:[D439B84],al
0101180A    3A56 A0         cmp dl,byte ptr ds:[esi-60]
0101180D    A1 FF3BAF15     mov eax,dword ptr ds:[15AF3BFF]
01011812    5C              pop esp
01011813    78 0B           js short NOTEPAD_.01011820
01011815    5F              pop edi
01011816    A5              movs dword ptr es:[edi],dword ptr ds:[esi]

\\\\\\\\\\\\\\\寄存器\\\\\\\\\\\\\\\\

EAX 00000000
ECX 0006FFB0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFDE000
ESP 0006FFC0       //esp=0006ffc0
EBP 0006FFF0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 010117F8 NOTEPAD_.010117F8

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

根据ESP定律规则,现在在命令栏中下断  hr 0006ffc0 命令,回车,F9运行:

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

7C81EB33    5E              pop esi                            ; 这里断下,Shift+F9继续运行!
7C81EB34    C9              leave
7C81EB35    C2 1000         retn 10
7C81EB38    85FF            test edi,edi
7C81EB3A  ^ 0F8E E6D0FEFF   jle kernel32.7C80BC26
7C81EB40    8B55 FC         mov edx,dword ptr ss:[ebp-4]
.........

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

010113D0    61              popad                              ; 运行到这里断下,F8单步继续运行!
010113D1    58              pop eax                            ; F8单步继续!
010113D2    FFD0            call eax                           ; 继续F8一次,抵达OEP,飞向光明之颠!^_^  OEP=01006420
010113D4    E8 6BA70000     call NOTEPAD_.0101BB44
010113D9    CC              int3
010113DA    CC              int3
010113DB    CC              int3
010113DC    CC              int3
010113DD    CC              int3
010113DE    CC              int3
010113DF    CC              int3
........

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

01006420    55              push ebp                           ; 飞向这里,程序入口,这里用LordPE完全Dump!
01006421    8BEC            mov ebp,esp
01006423    6A FF           push -1
01006425    68 88180001     push NOTEPAD_.01001888
0100642A    68 D0650001     push NOTEPAD_.010065D0             ; jmp to msvcrt._except_handler3
0100642F    64:A1 00000000  mov eax,dword ptr fs:[0]
01006435    50              push eax
01006436    64:8925 0000000>mov dword ptr fs:[0],esp
0100643D    83C4 98         add esp,-68
01006440    53              push ebx
01006441    56              push esi
01006442    57              push edi
01006443    8965 E8         mov dword ptr ss:[ebp-18],esp
01006446    C745 FC 0000000>mov dword ptr ss:[ebp-4],0
0100644D    6A 02           push 2
0100644F    FF15 60110001   call dword ptr ds:[1001160]        ; msvcrt.__set_app_type
01006455    83C4 04         add esp,4
.........
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【脱壳修复】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

运行LordPE,Dump整个进程,然后打开ImportREC找到该程序对应进程,OEP填00006420,“自动搜索IAT”,“获取输入表”,
一个指针无效,点击选项“显示无效函数”,然后选择“剪切指针数据”,“修复抓取文件”,OK,脱壳修复完成!运行成功!
Fix Dump!!

用PEiD再次检测,程序为 Microsoft Visual C++ 5.0 所编译,优化一下,原始:89.5 KB -->脱壳优化:144 KB

BTW:不过我脱壳后又做了个实验,在MoleBoxPro2.3.x中使用“Enable CRC check”这项功能的加密后的记事本,更好脱些,不知道是为什么?

-------------------------------------------------------------------------------------------

      版权所有(C)2005 KuNgBiM[DFCG]         Copyright (C) 2005 KuNgBiM[DFCG]

-------------------------------------------------------------------------------------------
                    Unpacked By KuNgBiM[DFCG]

                           2005-07-06

                           1:22:33 AM

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
2
实验图片

2005-7-6 11:41
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但没时间,但还是要顶的
2005-7-6 15:19
0
雪    币: 206
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主用PEiD侦壳脱壳:

显示为:“MoleBoxPro2.3.x -> MoleBox *”加壳。为什么我用PEiDV0.93汉化版查壳,却查不出来是什么壳呢?请哪位高手赐教?我是新手,如果问的问题比较肤浅,不要见笑!:)
2005-7-7 08:24
0
雪    币: 109
活跃值: (478)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
5
附件:unpack.rar

我去掉 3.4.5 区段 修复下 是 49.3 k

奇怪 98记事本 因该是 Microsoft Visual C++ 6.0 SPx Method 1
这样的吧~

怎么OD 调试时跟调试 dll 文件一样基址在 1000000 啊?
2005-7-7 13:33
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 sxd74 发布
楼主用PEiD侦壳脱壳:

显示为:“MoleBoxPro2.3.x -> MoleBox *”加壳。为什么我用PEiDV0.93汉化版查壳,却查不出来是什么壳呢?请哪位高手赐教?我是新手,如果问的问题比较肤浅,不要见笑!:)


用PEID0.93外部或标准扫描,当然要将其SIGN加入userdb.txt中.
2005-7-7 21:34
0
雪    币: 109
活跃值: (478)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
7
不是莫非
就是~

不过有些壳,你没 usedb.txt 他一样可以查~
只不过,那些都是老玩一~
2005-7-7 23:24
0
雪    币: 206
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好的!非常感谢!
2005-7-8 13:29
0
雪    币: 538
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
强烈的学习
2005-7-8 23:35
0
游客
登录 | 注册 方可回帖
返回
//