-
-
[原创]学用ESP定律手脱MoleBoxPro2.3.x加壳记事本
-
发表于:
2005-7-6 11:37
4770
-
[原创]学用ESP定律手脱MoleBoxPro2.3.x加壳记事本
【脱文标题】:学用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直播授课