软件保护措施的研究

很多基于cs的软件,开发完后都要考虑软件加密的问题。在网上找了一些资料,总结一下。实现根据每台电脑的硬件的序列号来实现对每台电脑的单独加密。

 

一般的原理是,首先读取客户电脑硬件的序列号,因为序列号一般情况下是不可能相同的。然后再根据序列号进行加密处理,然后生成客户机软件的唯一注册码,发给用户就行了。当然这种方式无法达到防破解的目的,只能说让一些不具备专业知识的人不能通过简单的拷贝来使用软件

 

步骤如下。

 

一、写一个读取客户硬件信息的小工具来生成激活码,这里采用磁盘某卷序列号和CPU序列号的组合来生成激活码,主要代码如下

 

 

读取磁盘卷标序列号时,调用了API函数GetVolumeInformation

 

获取激活码,ActivationCode=GetVolOf("C")+GetCPUID();

 

这个工具和软件一起打包给客户,比如先给客户一个试用期,试用期过后软件就需要注册了。客户通过这个工具获取客户机的唯一激活码ActivationCode

 

二、写一个注册码生成器

 

注册码生成器的主要目的是通过客户反馈的激活码,生成一个唯一注册码,方式主要是通过反复加密和格式化

 

比如我们这里采用MD5进行加密,可以根据自己的需求采用多中方式反复加密,加强软件保护

 

 

 

这样RegistrationCode=Encrypt(ActivationCode);

 

三、根据客户返回的激活码,通过注册码生成器生成一个唯一注册码发送个客户

 

四、客户注册,通过判断注册码与客户机硬件序列号的关联,达到注册的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值