危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18982413

飞秋任意授权码等级设置工具编写过程

飞秋是一款局域同聊天传送文件的绿色软件,不仅完全兼容飞鸽传书通讯协议,同时还具有QQ的一些功能,是飞鸽的完美代替者。前段时间在学校实验室的时候,整个局域网内的用户基本都使用该软件,偶然发现有一个人的头像后面竟然有两个小太阳,才知道原来飞秋也是有等级的。继续了解一下,等级可以自己设置,但是设置的时候需要授权码,而授权码需要根据你的机器码由飞秋的作者算出。危险漫步也想体验一把,于是便有了本次Crack的过程。最近有网友跟我及此工具,遂决定与大家分享一下工具编写的具体过程,由于工具写已久,很多细节已经遗忘,不对的地方望指正。

一、原理分析

由于本人当时的破解知识有限,没有追出授权码的算法,最后发现只需修改两处关键跳转加稍微修改一配置文件就可以轻松暴利破解掉,于是就没有继续跟踪算法。在破解开始之前,看初步猜测程序从开始到等级设置的运行流程,由此可以得出只要我们找到授权码验证时的关键跳转就可以实任意授权码设置等级的终极目标。用OllyICE载入飞秋主程序,直接查找字符串后发现关于授权码的提示信息。点击“授权码正确!”,进去观察相童传码,发褒在地址00463503处存在一处跳转疑似为算寻按的关键词。

将该处代码进行二进制编辑改为“75 25”,这样跳转指令je改成j nz,重新进行等级设置,输入任意授权码都会提示授权码正确,返回主界面后发现相应的等级也会显示出来,可是后来发现只要退出飞秋,下次运行的时候就无法正常显示等级,还需要重新设置。接下来的任务就是找到读入FeiqCfg.xml后第一处验证的关键跳转代码。使用OllyICE插件“API断点设置工具”对CreateFile、ReadFile等相关文件操作API下断点,对程序跟踪一段时间后,在程序出现界面之前会读入SerialNO、UserDenji和Showdenji这些敏感信息。在其不远处的00408F58存在一处跳转,二进制编辑把“74 02”改为“75 02”后验证确实与前画的猜想吻合,这样就实现了完美爆破。因为采用了暴利破解的方法,过程比较简单,我这里的叙述略显粗陋,OllyICE的详细使用方法请看以前的危险漫步文章。

二,程序编写

通过上文的分析,我们现在已经明确本次程序编写需要解决的两个问题,其一就是对配置文件  FeiqCfg.xml内容的增添,另外一个就是对飞秋主程序“飞秋FeiQ.exe”的修改。既然目标已经非常明了,下面我们开始编写程序。打开Visual CH- 6.0新建一个基于对话框的MFC程序,添加相应控件完成程序界面布局。由于C++对Xml文件的操作不是很方便,于是我们这里采用CMarkup外部类,该类功能强大使用方便,与C#中对Xml文件的操作相比有过之而无不及,添加头文件Markup.h到工程中并在文件顶部包含进来。

接下来我们对飞秋FeiQ.exe”进行修改,通过分析可知只需要在文件偏移Ox00008F58和Ox00063503两处写人数据Ox75即可。

注意程序编写部分涉及到的地址为文件偏移,而原理分析部分找到的地址为虚拟内存地址,二者的转换可以自行计算或借助工具,我这里采用一款小工具OC计算而得。将相关代码添加到按钮的响应函数电后就完成了程序的编写,将写好的程序与飞秋FeiQ.exe放置到同一目录下运行,默认飞秋等级被设置为9,并且现在可以在等级设置处任意设置。原程序在对飞秋FeiQ.exe修改之前还会判断程序是否已运行,若飞秋FeiQ.exe已经运行,则会先结束进程再修改程序,这里就不贴源码了。

相关推荐