【破文标题】:不脱壳破解《超级文件捆绑 V2.0》分析 + SMC补丁
【破文作者】:KuNgBiM[DFCG]
【作者邮箱】:gb_1227@163.com
【软件名称】:超级文件捆绑 V2.0
【保护方式】:功能限制 + 提示框 + 自校验 (其实这个软件是程序完整的Demo版,但没有注册项功能而已!)
【加密保护】:ASPack 2.12 -> Alexey Solodovnikov
【编译语言】:Microsoft Visual Basic 5.0 / 6.0
【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
—————————————————————————————————
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【脱壳过程】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
1.运行程序,东看看西看看,查找程序有那些功能限制和对我们有用的东西。
2.用PEiD查壳,ASPack 2.12 -> Alexey Solodovnikov,是简单的压缩壳,脱壳过程我就不写了,不会脱也没关系,因为程序有自校验,脱了也等于白脱,反正后面我们要不脱壳打补丁。(脱壳先不管,去校验麻烦,那我们就继续分析)
3.用Ollydbg载入,跟踪分析破解。
————————————————————
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【除壳过程】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Ollydbg载入主程序:
004B9001 > 60 pushad ;停在这里,F8一次
004B9002 E8 03000000 call cjkb.004B900A ;来到这里,这时查看寄存器窗口
004B9007 - E9 EB045D45 jmp 45A894F7
004B900C 55 push ebp
004B900D C3 retn
004B900E E8 01000000 call cjkb.004B9014
004B9013 EB 5D jmp short cjkb.004B9072
004B9015 BB EDFFFFFF mov ebx,-13
004B901A 03DD add ebx,ebp
........
\\\\\\\\\\\\\\\寄存器\\\\\\\\\\\\\\\\
EAX 00000000
ECX 0012FFB0
EDX 7FFE0304
EBX 7FFDF000
ESP 0012FFA4 // esp=0012ffa4
EBP 0012FFF0
ESI 77F57D70 ntdll.77F57D70
EDI 77F944A8 ntdll.77F944A8
EIP 004B9002 cjkb.004B9002
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
根据ESP定律规则,现在在命令栏中下 hr 0012ffa4 命令,回车,F9运行:
004B93B0 /75 08 jnz short cjkb.004B93BA ;这里断下,继续F7
004B93B2 |B8 01000000 mov eax,1
004B93B7 |C2 0C00 retn 0C
004B93BA \68 50284000 push cjkb.00402850 ;这里 00402850 所指的就是OEP,F7继续走
004B93BF C3 retn ;飞向光明之颠~~ F7继续
004B93C0 8B85 26040000 mov eax,dword ptr ss:[ebp+426]
........
00402850 68 B49F4200 push cjkb.00429FB4 ;飞向这里,程序入口 ^__^
00402855 E8 EEFFFFFF call cjkb.00402848 ;jmp to msvbvm60.ThunRTMain <-- 看到这里可以断定该程序是VB写的!
0040285A 0000 add byte ptr ds:[eax],al
0040285C 48 dec eax
0040285D 0000 add byte ptr ds:[eax],al
0040285F 0030 add byte ptr ds:[eax],dh
00402861 0000 add byte ptr ds:[eax],al
00402863 0040 00 add byte ptr ds:[eax],al
00402866 0000 add byte ptr ds:[eax],al
00402868 0000 add byte ptr ds:[eax],al
........
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【分析破解过程】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我们知道了该程序是VB写的,而且在做准备工作的时候我们得到了唯一的重要破解入手点:
“未注册版本”....“ * 注册版本才可以正常使用此项功能 *”....“注册用户功能。”....
光这3条信息提示,我们就足够了,好了开始接着分析:
先取消先前的所有断点,然后使用VB专用断点:rtcMsgBox
在Ollydbg命令栏中输入 bpx rtcMsgBox 命令,回车,F9运行:
①运行后的准备工作:启动框 --> 加载需要合并的文件 --> 高级设置 --> 版本 --> (随便选一项填写)
刚刚输入一个字符时就被断下了,看来我们下断没错:
004AAECC 53 push ebx
004AAECD 51 push ecx
004AAECE C745 AC 08000000 mov dword ptr ss:[ebp-54],8
004AAED5 FF15 94104000 call dword ptr ds:[401094] ;msvbvm60.rtcMsgBox ★这里断下,试试nop掉!再F9运行!★①
004AAEDB 8D55 BC lea edx,dword ptr ss:[ebp-44]
004AAEDE 8D45 C0 lea eax,dword ptr ss:[ebp-40]
004AAEE1 52 push edx
004AAEE2 8D4D C4 lea ecx,dword ptr ss:[ebp-3C]
........
F9运行后,“版本”项内其他功能都一切都正常了,没有烦人的提示框了,哈哈,记录下该点!
————————————————————————————————————————————————————————————————
②接着解除下一个烦人的提示框:
运行后的准备工作:再次选择程序中“运行”项 --> 热键呼出 --> (随便选一项填写)
这时也同上次的一样,刚刚输入一个字符时就被断下了:
004ABB2D 6A 40 push 40
004ABB2F 51 push ecx
004ABB30 FF15 94104000 call dword ptr ds:[401094] ;msvbvm60.rtcMsgBox ★这里断下,试试nop掉!再F9运行!★②
004ABB36 8D55 98 lea edx,dword ptr ss:[ebp-68]
004ABB39 8D45 A8 lea eax,dword ptr ss:[ebp-58]
004ABB3C 52 push edx
004ABB3D 8D4D B8 lea ecx,dword ptr ss:[ebp-48]
004ABB40 50 push eax
004ABB41 8D55 C8 lea edx,dword ptr ss:[ebp-38]
004ABB44 51 push ecx
........
F9运行后,““运行”项内其他功能都一切都正常了,没有烦人的提示框了,哈哈,记录下该点!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 【SMC补丁制作过程】 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
看来这么简单就搞定了所有的功能限制,好了,我们就接着来做SMC补丁吧,若编程的话,程序烦琐,这里还是采用大众化的模式:用补丁器做补丁吧。^__^
我们事先已经知道了补丁应该应用的位置(如下):
【爆破地址】
第①处:
004AAED5 FF15 94104000 call dword ptr ds:[401094] ;nop掉!
改:
004AAED5 90 nop
004AAED6 90 nop
004AAED7 90 nop
004AAED8 90 nop
004AAED9 90 nop
004AAEDA 90 nop
第②处:
004ABB30 FF15 94104000 call dword ptr ds:[401094] ;nop掉!
改:
004ABB30 90 nop
004ABB31 90 nop
004ABB32 90 nop
004ABB33 90 nop
004ABB34 90 nop
004ABB35 90 nop
那么我们就打开diablo2oo2前辈给我留下的好东东:dUP108汉化版(Diablo2oo2s Universal Patcher V1.08)
1.先在“补丁设置”中,填写好相应的内容。
2.然后接着选择“偏移量补丁”栏,先找到我们将要补丁的原始程序(当然,破解文件那一栏就等它空着吧),然后选择“虚拟地址模式”(这是为了对付象该文所涉及的类似的带壳程序),然后在“添加地址”栏内,完整填写我们刚刚所得到的相关内容:
①
偏移量:4AAED5
原始字节:FF1594100
修改字节:909090909
或:
偏移量:4AAED5
原始字节:FF
修改字节:90
②
偏移量:4ABB30
原始字节:FF1594100
修改字节:909090909
或:
偏移量:4ABB30
原始字节:FF
修改字节:90
3.最后选择“创建补丁程序”,保存到你要保存的目录下就OK了!运行试试吧~~~ ^__^
——————————————————————————————————————————————————————————————
【破解总结】
本文难度不大,主要是做一个抛砖引玉的作用,本文只是才用了暴力破解,对于判断是否注册的地方一直还没找到,希望有高手能指点一二。
------------------------------------------------------------------------------------------
版权所有(C)2005 KuNgBiM[DFCG] Copyright (C) 2005 KuNgBiM[DFCG]
-------------------------------------------------------------------------------------------
Cracked By KuNgBiM[DFCG]
2005-07-20
3:32:21 AM