【文章标题】: 网络验证之成人脑力训练(阿达脑轻松) 3.0破解
【文章作者】: wynney
【软件名称】: 脑力训练(阿达脑轻松) 3.0
【下载地址】: http://www.myadasoft.net/brain/index.htm
【保护方式】: ACProtect 2.0
【编写语言】: VB
【作者声明】: 此文旨在提供一种思路,如何分析是基本功,也是体力活,大家自行解决:)
--------------------------------------------------------------------------------
【详细过程】
今天看到
[http://bbs.pediy.com/showthread.php?s=&threadid=34080,"【网络验证注册码】的如何破解?"]这里在讨论这么个软件,如果用帖子里面兄弟们讨论的方法来行之,工作量就很大很大啦,呵呵,遂看了下,于是有了下文:)
一、察而观之
1、运行主程序,发现标题栏有“未注册版本”字样
2、PEID查壳为ACProtect 2.0
脱壳很容易,就不说了,VB的程序加的壳都那样:)
二、观而行之
1、忽略所有异常
2、OD载入脱壳文件,F9,让程序直接跑起来吧
3、Alt+M 搜索--->ASCII--->未注册版本
00EA1F31 CE B4 D7 A2 B2 E1 B0 E6 B1 BE 00 00 00 00 00 08 未注册版本.....
下硬件访问断点
4、重载,F9,中断下来
66002018 F3:A5 rep movs dword ptr es:[edi],dword ptr ds>; 中断在这里
观察堆栈
0012F9C0 |66043952 返回到 MSVBVM60.66043952 来自 MSVBVM60.6602EA45
0012F9C4 |00D91F9C
0012F9C8 |00000001
0012F9CC |00000004
0012F9D0 |00167FC4
0012F9D4 |0042BF3D 返回到 BrainExp.0042BF3D ;注意这里是返回到程序领空
0012FABC |004272FF 返回到 BrainExp.004272FF 来自 BrainExp.0042BA10 ;注意这里是返回到程序领空
0012FAC0 |00000001
0012FAC4 |00001D09
0012FAC8 |00000000
0012FACC |770F4A64 返回到 OLEAUT32.770F4A64
0012FB28 |0042AD2F 返回到 BrainExp.0042AD2F 来自 BrainExp.004272B0 ;右键--在反汇编窗口中跟随
0012FB2C |00000001
0012FB30 |00E61E94
0012FB34 |00000000
0012FB38 |00000000
0012FB3C |00000000
0012FB40 |00000000
0012FB44 |00000000
呵呵,只有这3处是返回到程序领空的(为什么要找返回程序领空,知道吧?自己想咯^_^)
0042ACE9 /0F8C FA090000 jl BrainExp.0042B6E9
0042ACEF |81BD E0FDFFFF 0F27>cmp dword ptr ss:[ebp-220],270F
0042ACF9 |7E 0A jle short BrainExp.0042AD05
0042ACFB |E9 E9090000 jmp BrainExp.0042B6E9
0042AD00 |E9 E4090000 jmp BrainExp.0042B6E9
0042AD05 |C745 FC 40000000 mov dword ptr ss:[ebp-4],40
0042AD0C |68 64614000 push BrainExp.00406164
0042AD11 |FF15 7C114000 call dword ptr ds:[40117C] ; MSVBVM60.__vbaNew
0042AD17 |50 push eax
0042AD18 |68 64414800 push BrainExp.00484164
0042AD1D |FF15 24124000 call dword ptr ds:[401224] ; MSVBVM60.__vbaVarSetObj
0042AD23 |C745 FC 41000000 mov dword ptr ss:[ebp-4],41
0042AD2A |E8 81C5FFFF call BrainExp.004272B0 ; 那这里就是Call调用了
0042AD2F |C745 FC 42000000 mov dword ptr ss:[ebp-4],42 ; 返回到这里
删除硬件断点吧,在0042AD2A下F2断点,就先权当做个标记
接下来,往上翻看。找到段首
00428BA0 55 push ebp ; 一切从这里开头,F2
00428BA1 8BEC mov ebp,esp
00428BA3 83EC 18 sub esp,18
00428BA6 68 C6324000 push <jmp.&msvbvm60.__vbaExceptHandler>
重载,F9,中断在00428BA0,继续F8跟踪分析吧
0042994A FF15 18114000 call dword ptr ds:[401118] ; MSVBVM60.__vbaStrCmp
00429950 F7D8 neg eax ; 上面是比较
00429952 1BC0 sbb eax,eax
00429954 F7D8 neg eax
00429956 F7D8 neg eax ; 执行之后eax=0,让它等于1吧
改之
00429956 B0 01 mov al,1
复制保存-->覆盖为BrainExplode.exe
(需要把破解的程序改名为原文件名BrainExplode.exe,因为程序会多次调用BrainExplode.exe)
--------------------------------------------------------------------------------
【经验总结】
1、喜欢绿色版的朋友用下面的链接吧,破解文件也在里面,为防止心怀不良之人,我加了个壳:)
2、绿色破解版: http://www.sendspace.com/file/nuxjbv
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年11月03日
[课程]Linux pwn 探索篇!