浅谈软件授权模块
茶余饭后

浅谈软件授权模块

傻木
2021-11-24 / 0 评论 / 613 阅读 / 正在检测是否收录...

通过一段时间的码砖练习,期间接触到了许可文件制作,即:给软件加上授权模块。

在一个月前对我来讲这个是很神秘的且高不可攀的!

一般我就百度下载那些已破解的或者是带算号器的,从来就没有想过有一天我会做一个算号器~ 这几天我尝试着自己写了些小软件,其中一个原创软件“显示器补光工具”。不管其他人是否用的上,不管我自己是否用的上,至少我觉得是有意义的。

所以我想给他加个授权,因此在网上找了几个简单的案例:即,软件运行后通过预定功能获取计算机硬件的序列号,并对序列号进行特定的计算,最终这个计算的值,就是许可文件。

基础原理:硬件特征码与许可码

举个栗子:
获取电脑中的磁盘序列号(8年前大多数软件都是取值磁盘),并将磁盘序列号计算出MD5值。那么:

  • 磁盘号 = 硬件码
  • MD5值 = 许可码

多简单,只要不换磁盘,重装系统都没关系,授权文件不会失效。甚至还有很多小工具能直接修改磁盘序列号,以达到破解目的。

其他特征码方案:

  • CPU硬件特征码、CPU序列号等: 原则上只要是硬件都是有固定的序列号的。
  • 网卡MAC地址: 你可以在软件授权模块中各自都取值一次,累计值计算出MD5。这样不管用户换了什么硬件都会失效,而且也大大增加了猜测硬件码的几率。

常见的坑点:

  • 有些软件绑定的就是简单的MAC地址,这个明眼人一看就知道了。
  • 有些绑定的是计算机系统安装日期,重装系统都会失效,实在是操蛋!!!!!

我的实现方式

在我这个软件中我可以明确告诉你,我绑定了硬盘特征码,绑定了CPU特征码,首尾还增加了一串特定字符。而且另外这四个字符串都进行了各自的计算(例如Ax12, Bx22等等),计算多次MD5值,期间还进行了倒序等等。

只要你不换CPU和硬盘,重装系统许可文件都是有效的。大家都知道,MD5除非是超级计算机,否则普通设备根本不能逆推。


进阶挑战:激活方式的破解逻辑

1. 离线激活 (Offline Activation)

这样就牢不可破了吗?不是的,这就涉及到软件离线激活原理了。所谓的离线,是相对在线激活而言的。

离线激活就是程序不需要联网,输一串激活码,或者是匹配激活许可文件就行了。那么怎么知道这个激活码或者是许可文件是对的呢?因为软件本身就自带了“算号器”功能:

  1. 假设各种硬件码算出的MD5值是 aaaa
  2. 用户输入的激活码是 123456
  3. 软件内部进行匹配:aaaa $\neq$ 123456 $\rightarrow$ 软件罢工。
  4. 如果相等,则运行。

破解思路: 只要想办法拦截到匹配过程,那就得到激活码了,这就是大多数软件通用授权方式和破解方式。

2. 在线激活 (Online Activation)

在线的软件就没有带“算号器”功能了。软件得到了序列号后还需要与开发者的特定服务器数据库做匹配:

  1. 用户硬件特征码为 aaaa,联机到开发者服务器提交该硬件码。
  2. 购买服务后,数据库会给这个 aaaa 加上授权(例如几次、计时或永久)。
  3. 不联网这个程序是打不开的,或者是不给使用的。

那么联网注册就一定是牢不可破了吗?依然不是!
现在还有相当一部分 Windows7 用户,大伙还记得有个程序叫做 Windows7 永久激活补丁吗?这个补丁的原理就是直接干掉联网激活的模块,都没这个模块了,还要激活干啥?懂了吧?联网激活可以绕过的!


其他授权形式

加密狗 (Dongle)

为什么叫加密狗?因为软件运行时都得跟着这个狗,不然软件不能运行。那么狗不好破吗?也不是,狗肚内也只是一个基本的存储器,几KB的闪存而已。早期甚至闪存都没有,用的是最简单的IC序列号作为软件的许可:就是把这个IC的序列号放在软件里面,软件打开时需要读取这个序列号,与软件自带的数据进行匹配,相等则运行。

框架式软件 (Framework Software)

目前还流行着一些框架式软件。所谓框架软件,就是软件本身只是个框架,没有任何“功能”,全都需要通过这个框架联网,真正的功能都在开发者服务器。

  • 例子: 通过框架上传一段视频到服务器,一段时间后框架告诉你视频换脸完成,你就能下载到完成后的视频。
    这就是框架软件(皮包软件),本身是没有功能的,功能都在服务器上,这个目前我还没有猜测到怎样破解。

当然了,上述我也只是管中窥豹,猜测到基本原理,但是我没有能力做逆向破解!

0

评论 (0)

取消
网站版权本人所有,你要有本事,盗版不究。 sam@gpcb.net