玲珑3D几何作图工具 V2.06的注册流程全面分析:爆破分析->算法分析->注册机->探究算法的本质
【文章标题】: 玲珑3D几何作图工具 V2.06的注册流程全面分析
【文章作者】: zouzhiyong
【作者邮箱】: zzydog@foxmail.com
【软件名称】: 玲珑3D几何作图工具 V2.06
【软件大小】: 763KB
【下载地址】: http://www.linglong3d.net/download/Linglong3dV2.06.rar
【加壳方式】: 没有加壳
【保护方式】: 序列号,实际上是KeyFile
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: od+peid+windows记事本+破解辅助计算器
【操作平台】: 虚拟机windows XP
【软件介绍】: 简单灵活的立体几何作图软件
【作者声明】: 这是自己首次详细的算法分析,文章可能有很多不当之处。还请大家来指正。
之前一直在找CrackMe来练习,感觉上有点脱离现实软件的注册算法,因此特意找一个共享软件来练习一下,总体感觉上难度不是不大,只是注册方式有点怪。至于怎么个怪法,下面开始分析。之前发过的算法分析可能是过于草率了吧,未能得到邀请码。
这次是从最简单的爆破开始逐步深入到算法分析,然后到写注册机,最后到探究注册算法的本质。分析尽量详细,比较通俗易懂。希望这次能得到大家的回复和支持,得到一个邀请码。
【分析过程】:
开始就用PEID查了一下,没有加壳的,是用Microsoft Visual C++ 6.0编写的程序,用OD载入进去,一看到那些乱七八糟的函数名就知道是MFC写的程序。小弟菜鸟一个,第一次分析MFC程序,MFC的程序真的是非常的头疼,要在一大堆封装代码上找出关键算法,幸好,软件的注册提示信息还是比较全的。
爆破追踪:
跟踪 入手点1-------输入错误信息跟踪:
废话说多了,切入正题。首先要说一下软件比较怪的注册流程。
软件运行后,窗口标题会显示软件没有注册,如果是超过了使用次数会显示已经超过了使用次数,并且弹出窗口要你输入解密锁密文。如图所示:
实际上这个输入框根本就没有任何意义,这仅仅是显示一个输入框而已,并没有任何功能(除了相应WM_CLOSE这个消息外),不管你输入的注册码正确与否,都不会作出反应,只能关掉。可能你会说只有正确的注册码才会有反应,但是下面就证明你是错的。
究竟是怎样看的出来的呢。我是通过这样发现的:开始想从这里入手跟踪注册流程的,下断bp GetDlgItemTextW,没有断下,消息断点没有断下,既然是MFC的话就更不用下GetWindowTextW了。此时想到如果获取了密文后一定会存放于某个buffer缓冲区的,因此,可以通过搜索内存来定位数据,然后对数据下断即可。
在随便输入字符串,点击确定后,我用winhex 搜索软件的全部内存,只找到一处,就是MFC资源框所在的buffer。正常情况下,如果有获取到内容到缓冲区的话,就肯定不止一处的,除非是根本没有获取内容。为了验证,我又做了两次对比,在点击确定的前和后搜索内存,结果是一样的,同样的地址。
其后又做一个次验证,就是在该地址下内存访问断点(硬件访问都试过了),然后按确定,没有被断下。
根本没有对密文框数据访问,到这里就证明了这个对话框根本就是废的,只是显示你没有注册而已。就是说,注册不能通过输入的形式来实现。这就是我在前面所说的怪异支出。
跟踪入手点2-------经典的查找字符串方式:
如果一开始就看字符串的话就不用走这么多弯路了,但是一开始就找字符串的话也不会发现作者的注册手段了~~,那个“虚伪”的对话框。
好,查找字符串,发现了一个关键的东西,就是窗口标题。这个很明显是切入点了。
随便跟入一个,就来到了所在的函数,下面代码:
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
