- UID
- 43421
注册时间2007-12-28
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【破文标题】驾驶员科目一模拟考试系统(驾校版)破解分析
【破文作者】骷髅牙医
【作者邮箱】[email protected]
【作者主页】http://crackcn.5d6d.com
【破解工具】PEID 0.94,OD 1.0
【破解平台】WIN XP sp2
【软件名称】驾驶员科目一考试模拟学习系统
【软件大小】15.9 MB (16,770,789 字节)
【原版下载】http://www.shangwusoft.com/soft/driver08.exe
【保护方式】机器码+注册码
【软件简介】软件介绍:
驾驭员科目一考试学习系统(驾校版)是最新版本的驾照助考软件。 该软件采用最新发布的公安部91号令的题库,内容分为汽车和摩托车两部分(练习时可选择做其中的一种),其中汽车类题库1500道,摩托车题库800道,采用鼠标和小键盘操作,该系统新增题库管理功能,可以新增地方题库,对试题进行修改,键盘操作热键可以自行设置,适合于各键键盘操作,该系统还新增了免维护功能,学员对软件的不当删除,都可快速恢复,而不用再别行注册。该软件含试题学习、模拟考试,错题回顾,题库管理,热键设置等内容和功能.做题时系统会显示考试过程已用的时间,做完后显示得分情况和各题答案的正确与错误情况,并可查看答错题的具体内容和答错之处。 一、本系统题库是公安部交通管理局按照修订后的《机动车驾驶证申领和使用规定》(公安部令第91号)要求编写的,适用于各地公安机关交通管理部门组织机动车驾驶许可考试的最新题库 二、考题按要求进行科学分类:通用试题涵盖了汽车类各车型的必考知识;客车专用试题,供A1、A3、B1准驾车型申请人考试使用;货车专用试题,供A2、B2准驾车型申请人考试使用;轮式自行机械车专用试题,供各种轮式自行机械申请人考试使用。
【破解声明】只为学习交流,没有其它目的,菜鸟一个,还请高手指点。
------------------------------------------------------------------------
【破解过程】首先用peid查壳,Microsoft Visual Basic 5.0 / 6.0. OD载入,试跑一下,很顺。输入手机号:13100000000,注册码:0000000000,注册Message Box : 注册不成功,请......。
开始分析:
1,VB的,就不用字符参考了。
2,message box 可能不戏。
3,可执行模块+名称参考(字符比较函数),可能也有戏(当然也可以下命令断点)。
先用第二种分析>>>message Box ,命令:bp rtcMsgBox,
660DC5F3 > 55 push ebp //断在这里
660DC5F4 8BEC mov ebp,esp
660DC5F6 83EC 4C sub esp,4C
660DC5F9 8B4D 14 mov ecx,dword ptr ss:[ebp+14]
660DC5FC 53 push ebx
660DC5FD 56 push esi
660DC5FE 57 push edi
660DC5FF 66:8339 0A cmp word ptr ds:[ecx],0A
660DC603 B8 04000280 mov eax,80020004
660DC608 0F85 FC000000 jnz MSVBVM60.660DC70A
660DC60E 3941 08 cmp dword ptr ds:[ecx+8],eax
堆栈内有:0012F428 009C9408 返回到 driver08.009C9408 来自 MSVBVM60.rtcMsgBox
我们选上回车,到了这里
009C93FC 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
009C93FF 6A 00 push 0
009C9401 51 push ecx
009C9402 FF15 90104000 call dword ptr ds:[<&MSVBVM60.#595>] ; MSVBVM60.rtcMsgBox
009C9408 8D55 A0 lea edx,dword ptr ss:[ebp-60] //到了这里.
009C940B 8D45 B0 lea eax,dword ptr ss:[ebp-50]
009C940E 52 push edx
然后向上找,能跳过的跳转,
来到这里
009C9397 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
009C939A FF15 24104000 call dword ptr ds:[<&MSVBVM60.__vbaFreeVar>] ; MSVBVM60.__vbaFreeVar
009C93A0 66:85DB test bx,bx
009C93A3 0F84 8A010000 je driver08.009C9533 //这个跳能跳过。试试。
009C93A9 B9 04000280 mov ecx,80020004
009C93AE B8 0A000000 mov eax,0A
009C93B3 894D A8 mov dword ptr ss:[ebp-58],ecx
009C93B6 894D B8 mov dword ptr ss:[ebp-48],ecx
009C93B9 BB 08000000 mov ebx,8
009C93BE 8D55 80 lea edx,dword ptr ss:[ebp-80]
009C93C1 8D4D C0 lea ecx,dword ptr ss:[ebp-40]
009C93C4 8945 A0 mov dword ptr ss:[ebp-60],eax
试一下发现不行。原来是验证手机号输入的。可以看出,基本验证还没完这里还是基本验证。
那这样一来,我们就要换转思路了,不能向上找了,要跟着走了。
单步到这里****出来输入的手机号了。哈哈,看来思路是对的。(看到地址怎么在前面的地址之前呢?,是的是循环
验证先验为空再验,真假)
009C9357 FF15 68104000 call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckObj>>; BVM60.__vbaHresultCheckObj
009C935D 8B55 E8 mov edx,dword ptr ss:[ebp-18] *****************
009C9360 52 push edx
009C9361 FF15 28104000 call dword ptr ds:[<&MSVBVM60.__vbaLenBstr>] ; MSVBVM60.__vbaLenBstr
接着走。。。。。。。
单步到这里****出来输入的假码了。(********************)
看来成功就是眼前了,哈哈。
009C9563 50 push eax
009C9564 FF15 68104000 call dword ptr ds:[<&MSVBVM60.__vbaHresultCheckObj>>; MSVBVM60.__vbaHresultCheckObj
009C956A 8B45 E8 mov eax,dword ptr ss:[ebp-18]*******************
009C956D 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
009C9570 51 push ecx
009C9571 68 38C09C00 push driver08.009CC038
接着走。。。。。。
这里的这个跳转(******************)。。。。。(哈哈。。想笑吧)。。
是不是像你想的那样呢???
可以这样分析一下,你看看注释窗口,
; UNICODE "mysoft"
; UNICODE "soft"
UNICODE "chenxinsoft"
很明显的注册表操作嘛。一定是不跳的话就向注册表写东西了。
走到这里(**********)发现跳过去了,这不行,不能让它跳啊,改了!!!(寄存器Z标志改)。
009C957D 8945 D8 mov dword ptr ss:[ebp-28],eax
009C9580 C745 D0 0880000>mov dword ptr ss:[ebp-30],8008
009C9587 FF15 DC104000 call dword ptr ds:[<&MSVBVM60.__vbaVarTstEq>] ; MSVBVM60.__vbaVarTstEq
009C958D 8D4D E4 lea ecx,dword ptr ss:[ebp-1C]
009C9590 8BD8 mov ebx,eax
009C9592 FF15 14124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>] ; MSVBVM60.__vbaFreeObj
009C9598 8D4D D0 lea ecx,dword ptr ss:[ebp-30]
009C959B FF15 24104000 call dword ptr ds:[<&MSVBVM60.__vbaFreeVar>] ; MSVBVM60.__vbaFreeVar
009C95A1 66:85DB test bx,bx
009C95A4 0F84 91020000 je driver08.009C983B ****************************
009C95AA 8D55 E8 lea edx,dword ptr ss:[ebp-18]
009C95AD 68 38C09C00 push driver08.009CC038
009C95B2 52 push edx
009C95B3 FF15 58114000 call dword ptr ds:[<&MSVBVM60.__vbaStrVarVal>] ; MSVBVM60.__vbaStrVarVal
009C95B9 50 push eax
009C95BA 68 14D44000 push driver08.0040D414 ; UNICODE "mysoft"
009C95BF 68 24C84000 push driver08.0040C824 ; UNICODE "soft"
009C95C4 68 08C84000 push driver08.0040C808 ; UNICODE "chenxinsoft"
009C95C9 FF15 04104000 call dword ptr ds:[<&MSVBVM60.#690>] ; MSVBVM60.rtcSaveSetting
009C95CF 8D4D E8 lea ecx,dword ptr ss:[ebp-18]
009C95D2 FF15 18124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>] ; MSVBVM60.__vbaFreeStr
009C95D8 8B06 mov eax,dword ptr ds:[esi]
改后你猜怎么着("注册成功!感谢您对正版软件的支持"),哈哈,注册成功了。
OK 了,这个软件就这么一步就好了。
如果想具体分析算法的话,可以到上面的(009C959B )CALL里面看看,小弟太菜就到这里吧。
具体刚开始说到的第三种方法,大家可以试试。
谢谢大家观看。
------------------------------------------------------------------------
【破解总结】注册表,HKEY_USERS\S-1-5-21-2000478354-842925246-1202660629-1004\Software\VB and VBA Program Settings\chenxinsoft\soft 是注册码保存的地方。
用这个方法破解后,大家可以想到更多的方法。
破解最主要的是想法。
技术不行,还要好好学习啊。
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢! |
|