专注信息安全二十年    让沟通更安全

龙脉科技 NOX2软件保护方案(防复制解决方案)

龙脉科技 NOX2加密锁并非高端加密锁,属于低端加密锁,对于很少有加密经验的软件开发商来说,一般是直接将应用程序标识和用户密码写入软件,从而查找和打开加密锁,验证通过则执行程序,或是将一些验证信息写到锁内,然后软件运行中读取,进行简单验证来判断该加密锁的合法性。程序发到客户处往往是需要用户密码验证后打开锁,然后读取锁内的一些验证信息,在程序中进行匹配,这样的话如果用户密码被取到,那就可以通过这个用户密码,从而读取加密锁中的数据,盗版您的软件。那么有没有比较好的方法可以在一定程度上杜绝这种破解呢?方法一定是有的。下面就简单介绍下如果在一定程度上杜绝此类破解。首先我们来分析以上加密方法最大的蔽端在于加密锁数据区中写入的验证信息都是相同的,这样就减少了破解难度。那么我们可以反其道行之,保证每把加密锁数据区中的验证信息是不相同的,并且软件中也可以正确验证。

 

如何做到呢?首先我们可以自己在软件中设计一套算法, 用户密码不要连续存储,可以将用户密码和几百k的无用数据组合,您也可以加入一些绑定模块信息时间授权等等,程序中分段读取拼接出真正的用户密码。

 

打开锁之后,通过用户密码+CPU号+硬盘号+软件产生随机数,通过一个算法生成不同的数据内容(软件每次启动首先要读取锁数据区内容与程序中生成的比较验证锁的合法性,当然我们的初始锁一定要写一个验证信息在软件中去验证,首次验证完后马上把验证数据覆盖,这样他就算破解了用户密码也无法知道锁内初始验证信息是什么,如果验证信息合法则将验证数据写入加密锁,)加密锁可写10万次,假如每天软件启动三次,一年365天  100000/365*3 = 91.33年,加密锁可用将近100年的时间,完全能满足应用软件的需求。

 

一般的软件破解一次性调试破解的可能性也极小,且由于每次写入锁的数据有随机数参与,每次程序中也要验证当时产生的随机数,所以锁内数据区永远不会相同,验证数据每次也不会相同。在这个基础中在利用NOX2统一外壳加密工具加一层壳,就又多了一层保护错失。

 

三层验证,三层保护,在一定程度上可有效防止复制。

 

标签: