当前位置:首页 >资讯 >虚拟加密狗之基础思想


随着非法软件复制的大规模复制和分发,如何设计可行的软件保护方案一直是软件开发者不断研究的课题。因此,在虚拟加密狗保护方法的基础上,增加其核心代码量,应用核心数据和代码。用户计算机指纹绑定技术,提出了一种安全增强的虚拟加密狗共享软件保护方法。

虚拟加密狗基本思想。

针对虚拟加密狗软件保护方法容易爆破和更换的问题,提出了安全增强的虚拟加密狗共享软件保护方法,分为两部分:一是增加虚拟加密狗文件中的核心代码,将所有核心功能以下简称注册功能)密封到DLL文件中,将文件所需的核心数据分离,保存到INI文件中,实现软件狗的主要功能;

应用核心数据和代码。用户计算机指纹绑定技术提高了虚拟加密狗本身的安全性。

1)增加虚拟加密狗文件中的核心代码量,将所有注册功能的核心代码封装到DLL中,实现虚拟加密狗的主要功能。如图1所示,消除软件注册版每个注册功能模块中的核心代码和数据,预留虚拟加密狗呼叫接口(图1a虚线框中)生成软件试用版(图1a),将核心代码和数据封装在虚拟加密狗中(图1a);虚拟加密狗由DLL文件及其所需的数据文件组成,包括软件核心代码模块、用户计算机指纹验证模块、数据解密模块和DLL文件完整性验证模块,实现软件狗的主要功能。数据文件保存虚拟加密狗DLL文件所需的参数。图1b中的核心代码模块与数据文件中的数据一一对应。为了便于实现,数据文件采用INI文件格式。

1

2)应用核心数据和代码。计算机指纹绑定技术可以提高虚拟加密狗本身的安全性。具体步骤是:在虚拟加密狗的DLL文件中添加软件运行所需数据的解密模块,可以从虚拟加密狗的数据文件中解密其核心代码所需的数据),然后用DLL文件的数字签名。用户的计算机指纹是密钥加密DLL文件中核心代码所需的数据,并将DLL文件所需的数据文件加密保存在数据文件中。原理如下:

①密钥=FDLI。文件数字签名,用户计算机指纹);

②明文M=Decrypt密文C,密钥);

③密文C=Encrypt朗文M,密钥);

其中,明文M是软件运行时DLL文件所需的正确数据,密文C是DLL文件所需的数据加密后的数据。

①.②添加到DLL文件的数据解密模块中,③将加密的密文C写入INI数据文件,以便在软件运行时调用DLL文件。为了确保密文C的安全,外层使用1024位RSA算法私钥进行加密保护,以确保其安全,并在DLL文件中的解密模块②之前添加RSA公钥解密算法。数据解密模块的过程如图2所示,相应数据文件的加密过程如图3所示。

1

图2描述了虚拟加密狗的软件保护过程:文件完整性验证检测DLL文件是否被篡改;②用户计算机指纹验证模块确保软件在注册用户计算机上运行;③核心代码数据解密模块是虚拟加密狗确保其安全的核心模块。首先,用RSA公钥解密数据文件中key值的外层保护,然后用用户计算机指纹和虚拟加密狗自己的DLI。文件的数字签名生成密钥,以解密DLL中核心代码模块使用的正确数据;④核心代码模块完成注册功能的调用。