软件分析过程-破解XXX自学宝典

为了参加半个月后的《法律基础与思想道德修养》考试,我从网上下载了一个叫作“法律基础与思想道德修养自学宝典”的共享软件,记得以前用过“马克思主义哲学原理自学宝典”,在它的帮助下顺利通过了考试(推荐使用)。以前用的都是别人破解好的,这次却没那么好运。通过观察我发现这两个软件是同一个妈生的,既然别人能破解,我为什么不行呢?于是操起家伙将其破之。不料却有意外的收获,特著此文与广大破解爱好者分享(高手略过)。

一 软件漏洞

该软件只能免费试用7次,过了试用期之后软件会出现如的注册提示。

通过观察我发现只要你把鼠标指针移动到答案上马上就会出现的界面,相反如果我们不把指针移到答案上就可以正常使用,“看答案”、“上一题”和“下一题”三个按钮也都可以正常使用。并且在使用说明页面已经告诉我们可以通过键盘来操作,使用键盘操作的话不注册也完全可以正常使用。
“熟知题的答对次数”和“模拟考试时间”的设置,在没有注册的情况下是不能修改的,然而我们也可以通过修改软件目录下的“cisu.txt”和“time.txt”来实现。清空记录可以修改“LOAD.TXT”、“LOAD1.TXT”和“LOAD2.TXT”,修改和增加记录可以修改数据库文件“qi.mdb”来实现。因此,我们利用软件作者的疏忽达到了免费使用软件的目的。

二 完全暴破

作为一个有理想的菜鸟,当然不能停留在这个阶段,我们要堂堂正正地破解它。
进入软件注册的地方,随意输入注册码hkliya,确定后出现的错误提示。

用PEID查壳,是VB写的,无壳。
用OD载入,在命令行插件里输入bp rtcMsgBox下断(也可以按ALT+E后双击MSVBVM60,再按CTRL+N输入rtcMsgBox,F2下断),F9运行程序,输入假注册码hkliya,确定后程序中断,CTRL+F9执行到返回,弹出错误提示,点确定后程序停在

6A36303D    C2 1400           retn 14

F8单步,返回到了程序代码,现在我们来找关键跳,看看前面是否有跳转可以跳过此出错消息。
向上找不远我们可以发现:

00448943   /0F84 D6000000     je fljcwr.00448A1F

这个跳转刚好是跳到出错消息的前面,为了验证它是不是关键跳,我们在此行代码上按F2下断,
CTRL+F2重新载入程序,F9运行,还是输入假注册码hkliya,确定后程序中断在刚刚下的断点处,并且指向下面的跳转线呈红色,说明跳转已经实现,我们要做的就是阻止它往下跳,此时只需按下空格键,将je 00448A1F改为jne 00448A1F(意思是将相等则跳改为不相等则跳),右键->复制到可执行文件->所有改动->全部复制,在弹出的新窗口右击->保存文件,保存为1.exe。关闭OD,运行刚刚保存的程序,输入任意注册码,确定是不是弹出了注册成功的提示!

是不是觉得很有成就感呢?可是当我把鼠标移到答案上时,软件界面又变得和图1一模一样,仍然无法正常使用,看来仅仅做这点还是不够的。为了不浪费前面的努力,我们这次用OD载入1.exe,删除掉刚刚下的断点(按ALT+B打开断点窗口,右键->删除),继续在前面的基础上工作。

正当我一筹莫展之际,突然想到它在出现错误提示之前应该要判断是否注册,那就应该会有比较,因此我在VB中常用的几个比较函数上下断,最后果然断在了vbaStrCmp上。各位看官只需在vbaStrCmp函数上下断即可,方法与前面的rtcMsgBox一样,这里不再赘述。需要注意的是在下好断点后须先将断点关闭(在断点窗口右键->关闭),然后运行程序,待程序界面完整后再激活断点(在断点窗口右键->激活)。断点激活后我们把鼠标移动到答案上或在答案上点击一下就会触发事件,程序中断在vbaStrCmp函数,我们按CTRL+F9执行到返回,F8单步,返回到了程序代码。大家都知道关键跳前面是关键比较,那么关键比较后面当然就是关键跳咯!往下看:

0045F639   /0F84 99020000     je 1.0045F8D8

这里就是我们要找的关键跳,由于我们是暴力破解,只需将这里的je改为jne即可。跟前面一样,我们把修改后的文件保存为2.exe。关闭OD,运行2.exe。现在终于可以使用了,我们的破解基本告一段落,但我说过破解就要彻底,所以还有一些工作要作。
用OD载入2.exe,我们要做的就是将使用说明中的“清空记录”,“增加记录”和“修改记录”也破解掉,因为我们现在使用这些功能的话会弹出

的提示!还有软件运行后每隔3分钟左右会弹出一个提醒注册的对话框,点关闭按钮也会有这么一个对话框!我们还是像前面破解注册那一块一样,使用rtcMsgBox断点来破解,方法基本一样,不再赘述。(注意:“修改记录”和“增加记录”在调用rtcMsgBox的前面有很多跳转,大家只需记住关键跳是向上找到的第一个je即可,其它的都在调用rtcMsgBox的前面一点,很容易找到。)细心的朋友会发现在全部都修改好以后虽然“清空记录”按钮可以使用了,但使用后又会出现图1的界面。解决这个问题很简单,只需点一下“软件注册”后再点一下“返回”即可!

三 一劳永逸

有好东西当然要大家分享,我极力推荐同学们使用这个软件。我当然不会笨得跑到每个同学的电脑上帮他破解一次,所以最好的办法是制作一个文件补丁,简单易用,携带方便!而且还可以在同学面前炫耀一番^_^!怎么样?心动了吧?那就跟我来……我使用keymake来制作,打开keymake,其它->制作文件补丁

填写个人信息后,选取原始文件和已破解文件,点制作,选择一个样式,然后选择保存位置和文件名即可!我前面说过“马克思主义哲学原理自学宝典”和“法律基础与思想道德修养自学宝典”是同一个妈生的,因此破解方法也类似,甚至还有“邓小平理论概论自学宝典”或“XXX自学宝典”都可以用相同方法破解!

现在软件已经升级到3.0 并且免费使用!

本文发表于一蓑烟雨论坛: http://www.unpack.cn/thread-15018-1-1.html