现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

通过生成序列号防止软件拷贝的基本思路

2013-01-30 22:35 工业·编程 ⁄ 共 597字 ⁄ 字号 暂无评论

软件产品卖出去以后,如何防止客户在多台电脑上重复安装呢?最偷懒的方法就是使用别人的硬件加密狗解决,但是这样的话一来随着销售量的积累会增加成本,二来很多客户不想在电脑上插如此多的加密狗(因为其他的软件可能也需要用加密狗,会导致USB接口紧张)。

那我们还可以通过软加密的方式,即唯一序列号的形式,来代替硬件加密狗。

基本思路如下:
1. 在前期给客户安装的都是试用版本。试用形式分为三种:A. 时间限制;B. 次数限制;C.功能限制。
2. 客户在安装完软件后,在安装目录下将服务器的硬盘ID(或者CPUID)按照算法A加密,这里我们称其为机器码,保存在特定的文件里,比如可以取名为machine.usr。
3. 客户将machine.usr发送给软件生产商,软件生产商将machine.usr导入到序列号生成器当中,将机器码按照算法B生成唯一的序列号,将序列号传回给客户。
4. 客户在程序中输入该序列号,程序对序列号进行核对,如果序列号与程序算出的相同则升级成正式版。

至此,我们前期需要准备的事情大致如下:

1. 生成机器码的加密算法。
2. 生成序列号的加密算法。
3. 时间限制时用来判断过期的方法。

有没有方法能够脱离服务器自己记录使用时间的,一般都是读取计算机本地时间源,但这种方式很容易被钻空子,即使你将安装和使用时间写入注册表,依然可以轻松破解。对于判断过期的方法,暂时没有好的思路,也许有完美的方法,但我还没掌握到。

给我留言

留言无头像?