地下城与勇士次元之梦:怎样保护软件?

来源:百度文库 编辑:高考问答 时间:2024/05/06 00:59:19
怎样VMProtect软件用打乱源码?

怎样保护你的软件产品?

■ 门马

--------------------------------------------------------------------------------

问:你好,我是一家软件公司的研发主管。我们公司的产品非常抢手,所以盗版严重,因此我们希望能通过一些方法使消费者按照使用期限来购买我们的软件产品。尽管我们也尝试过一些方法,但是这些方法很容易通过修改系统日期的办法被破解,对此我们很苦恼。不知道你能否介绍一种安全、专业,但又操作简便的方法?

答:你遇到的问题其实很普遍,很多软件公司也都采用了一些方法,但这些保护方式主要是依赖于操作系统的时钟来实现的,存在较大的不可靠性,同时这类方法只是限制了授权用户的使用,并没有起到限制非授权用户使用的作用。所以,应该寻找一个不从操作系统获取时间值的方法。SafeNet China公司的时钟狗就是这样一款硬件解决方案。

时钟狗是使用在计算机并行口上的用于软件保护的硬件产品,它除了具有200字节的可掉电保持数据基本存储区外,还提供了可掉电保持数据的5K字节扩展存储区,并提供了万年历功能,同时每只时钟狗都具有全球惟一的硬件流水号。时钟狗的开发套件提供了获取硬件时钟、读写基本存储区、读扩展存储区、获取硬件流水号等功能。通过以上几个功能我们就能够设计一个完善的限制软件使用期限的解决方案。

你可以将软件的使用期限记录在时钟狗的基本存储区中,在软件运行时获取时钟狗的硬件时钟,并从基本存储区中获取使用期限,然后将使用期限和硬件时钟比较,如果超出使用期限,则可以停止软件的运行。如果软件有不同的模块需要进行不同的使用期限的限制,也可以通过合理分配存储区单元达到同样的效果。由于时钟狗的硬件时钟在用户处是不可更改的,这样就真正保证了限制的有效性。

问:如果软件使用期限到了以后,用户还想继续使用我们的软件怎么办?是不是还得重新购买产品和相应的时钟狗?

答:当然不用。软件使用期限到了以后,如果用户希望延长软件的使用期限,在交纳相应的费用后,你可以针对特定的用户提供使用期限的更新程序,这一点是由时钟狗全球惟一的硬件流水号的特征来保证的。

问:根据这个时钟狗的特点,是否利用它就完全可以实现软件试用期的功能了?

答:没错。在时钟狗提供的接口中主要有两个函数和时钟有关: GetDogTime和CheckDogEx,你可以通过这两个函数来实现试用期功能。GetDogTime函数返回的就是时钟狗中的日期和时间,你可以直接判断是不是超出了期限就可以了;CheckDogEx是一个更高级功能的函数,此函数主要完成变换功能,将你指定的一个字符串变换成一个长整型数,只要时钟狗中的时间没有超过你设定的时间,返回值就是确定的; 如果超出了您设定的期限,返回值就是个随机数。

http://www2.ccw.com.cn/04/0420/d/0420d29_3.asp