飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10926|回复: 4

[原创] 驾驶员科目一模拟考试系统(驾校版)破解分析

[复制链接]

该用户从未签到

发表于 2008-4-10 14:48:27 | 显示全部楼层 |阅读模式
【破文标题】驾驶员科目一模拟考试系统(驾校版)破解分析
【破文作者】骷髅牙医
【作者邮箱】wushui_mu@163.com
【作者主页】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  是注册码保存的地方。
用这个方法破解后,大家可以想到更多的方法。
破解最主要的是想法。
技术不行,还要好好学习啊。
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
PYG19周年生日快乐!

该用户从未签到

发表于 2008-4-14 08:10:47 | 显示全部楼层
很好的思路,谢谢楼主分享!
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-1-15 13:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-4-14 11:39:24 | 显示全部楼层
    思路很明确~谢谢楼主。学习中……/:013
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-4-16 15:58:47 | 显示全部楼层
    思路很明确~谢谢楼主。学习中
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-1-18 13:29
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-4-23 02:01:13 | 显示全部楼层
    这个软件是明码比较。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表