| 
注册时间2006-6-29
阅读权限10
最后登录1970-1-1UID16935 周游历练 
 
 该用户从未签到 | 
 
| 【文章标题】: 带壳破解网络验证之阿达成人脑力训练3.50最新版 【文章作者】: scuCBJ
 【软件名称】: 脑力训练(阿达脑轻松) 3.50
 【下载地址】: http://www.myadasoft.net/brain/index.htm
 【保护方式】: ACProtect 2.0
 【编写语言】: VB
 【作者声明】: 此文旨在提供一种思路,如何分析是基本功,也是体力活,大家自行解决:)
 --------------------------------------------------------------------------------
 【详细过程】
 今天看到[http://bbs.pediy.com/showthread.php?s=&threadid=34080,"【网络验证注册码】的如何破解?"]这里再讨论这么个软件。该软件网络验证原理是获得客户端发送的用户名和注册码通过服务器的处理程序计算是否合法,如合法,则返回合法的数据继续执行自身的注册程序注册软件,否则不会执行。
 【破解依据】
 既然是返回验证正确与失败来执行软件自带的注册程序,就可以不必要通过服务器验证,通过调试强行让程序自行注册。所以,跳过网络验证模块对这个软件来说是可行的,下面看我具体操作。
 一、察而观之
 peid查壳,发现是ACProtect 2.0,不脱壳了。
 
 二、观而行之
 OD出场,具体分析省略了,大家应该都可以找到网络验证的call.
 hide OD,F9让程序跑起来,点注册,输入用户名和注册码(随便输入)
 在下面call下断
 0046061A    .  FF15 54104000   call dword ptr ds:[401054]           ;  MSVBVM60.__vbaFreeObjList   //网络验证call,F2下断
 点注册后程序就中断下来,F7跟进,然后就到了以下代码(省略一些无关代码)
 0046209F    .  8D8D 78FFFFFF   lea ecx,dword ptr ss:[ebp-88]
 004620A5    .  FF15 B0124000   call dword ptr ds:[4012B0]
 004620AB    .  50              push eax
 004620AC    .  8D85 74FFFFFF   lea eax,dword ptr ss:[ebp-8C]
 004620B2    .  50              push eax
 004620B3    .  FF15 70124000   call dword ptr ds:[401270]
 004620B9    .  50              push eax
 004620BA    .  8B8D F0FEFFFF   mov ecx,dword ptr ss:[ebp-110]
 004620C0    .  51              push ecx
 004620C1       E8 8E96FAFF     call BrainExp.0040B754   //这里获得用户机器和注册信息后开始进行网络验证,nop掉,不让他发送信息
 004620C6    .  8985 F4FEFFFF   mov dword ptr ss:[ebp-10C],eax
 004620CC    .  FF15 84104000   call dword ptr ds:[401084]
 004620D2    .  8B95 F4FEFFFF   mov edx,dword ptr ss:[ebp-10C]
 004620D8    .  8955 D8         mov dword ptr ss:[ebp-28],edx
 004620DB    .  8D85 64FFFFFF   lea eax,dword ptr ss:[ebp-9C]
 
 继续往下走,来到了第二处验证
 0046282C    .  8D8D 78FFFFFF   lea ecx,dword ptr ss:[ebp-88]
 00462832    .  FF15 B0124000   call dword ptr ds:[4012B0]
 00462838    .  50              push eax
 00462839    .  8D95 74FFFFFF   lea edx,dword ptr ss:[ebp-8C]
 0046283F    .  52              push edx
 00462840    .  FF15 70124000   call dword ptr ds:[401270]
 00462846    .  50              push eax
 00462847    .  8B85 F0FEFFFF   mov eax,dword ptr ss:[ebp-110]
 0046284D    .  50              push eax
 0046284E       E8 018FFAFF     call BrainExp.0040B754  //这里也是验证,nop掉
 00462853    .  8985 F4FEFFFF   mov dword ptr ss:[ebp-10C],eax
 00462859    .  FF15 84104000   call dword ptr ds:[401084]
 0046285F    .  8B8D F4FEFFFF   mov ecx,dword ptr ss:[ebp-10C]
 00462865    .  894D D8         mov dword ptr ss:[ebp-28],ecx
 00462868    .  8D95 64FFFFFF   lea edx,dword ptr ss:[ebp-9C]
 0046286E    .  52              push edx
 0046286F    .  8D85 68FFFFFF   lea eax,dword ptr ss:[ebp-98]
 00462875    .  50              push eax
 
 继续往下走,就来到了关键比较处
 00462AB3    .  FF15 50124000   call dword ptr ds:[401250]
 00462AB9    .  66:8985 DCFEFFF>mov word ptr ss:[ebp-124],ax
 00462AC0    .  8D8D 48FFFFFF   lea ecx,dword ptr ss:[ebp-B8]
 00462AC6    .  FF15 28104000   call dword ptr ds:[401028]
 00462ACC    .  0FBF8D DCFEFFFF movsx ecx,word ptr ss:[ebp-124]
 00462AD3    .  85C9            test ecx,ecx
 00462AD5    .  0F84 4E030000   je BrainExp.00462E29   //验证是否合法,不合法则跳向失败处,不执行以下的注册程序,感谢寒秋提醒,这里jmp过去,强行让他执行
 00462ADB    .  C745 FC 1700000>mov dword ptr ss:[ebp-4],17
 00462AE2    .  8B55 08         mov edx,dword ptr ss:[ebp+8]
 00462AE5    .  8B02            mov eax,dword ptr ds:[edx]
 00462AE7    .  8B4D 08         mov ecx,dword ptr ss:[ebp+8]
 00462AEA    .  51              push ecx
 00462AEB    .  FF90 FC020000   call dword ptr ds:[eax+2FC]
 
 至此,程序已经注册成功了,F9一下就可以看到注册成功的字样了,软件重启一下就成为正式注册版了,大功告成!
 
 【总结】
 对于这样注册的网络验证程序可以使用这样的方法,其他的不行。这样破解注册的好处是能正常升级,能做正版做的事,还是有一定好处的,呵呵。
 网络验证是大工程,现在越来越多的软件使用网络验证的加密方法,对于网络验证我也知之甚少,期望有经验的朋友拿出经验来分享下,在此谢谢各位观看。注册成功后的图片看附件
 
 [ 本帖最后由 CBJ 于 2007-3-18 01:16 编辑 ]
 | 
 |