超级狗保护(2)

序:本文继续介绍超级狗的二次开发流程。

1. 特征

"特征"是指程序中可被识别的功能组件,可以是一个可执行文件、软件模块、.NET 方法或者打印、保存、绘制等特定功能。特征被分配一个唯一的标识号码,称作特征 ID。

使用超级狗许可设计工具可以编辑特征信息。

产品或业务经理需要准备产品计划。产品计划的准备包括以下方面:

  • 确定功能组件

   分析所有应用程序,确定可被指定许可类型的功能组件。

  • 定义软件产品

   把各功能组件 ( 特征 ) 组合成可销售的软件产品。

  • 指定许可类型

   分别对各功能组件 ( 特征 ) 指定许可类型。

 

超级狗提供了以下四种许可类型:

  • 永久:可以永久使用,没有时间和次数的限制。
  • 执行次数:限制可以使用的最多次数。
  • 过期日期:在过期日期到达之前可以使用。
  • 执行天数:从首次使用开始的一定天数内可以使用。

 

2. 数据文件

数据文件是超级狗中用于存放数据信息的地方,包括只读类型,读写类型和写一次类型。

通常存储数据文件的时候建议采用加密的方式存储。可以使用超级加密狗助手加密数据,然后写入数据文件中。

3. 编程超级狗

超级狗编程可以采用超级狗编程工具或许可设计工具进行,由于使用套件中不能使用超级狗编程工具,所以我采用的是许可设计工具编程超级狗。

4. 登录验证

采用 Licensing API 和程序结合的特征可以加强软件保护。 Licensing API 的保护我主要采用了登录验证和获取加密的数据两种保护方式。

在程序执行初始时,通过调用Licensing API 中的dog_login()函数,验证是否连接了超级狗设备。

C#版登录方法demo :

其中vendorCodeSafeNet\SuperDog\[version]\VendorCodes中的.hvc文件中获取。

注:需要同时将api_dsp_windows.dll和api_dsp_windows_x64.dll拷贝到bin目录下,运行时会根据系统判断。

5. 获取参数

软件运行时的命令行参数可以通过调用Licensing API 中的dog_read()函数读取超级狗中的数据文件,其中参数需要调用dog_decrypt()函数解密。

C#版获数据文件方法demo:

 

对于使用命令行运行的软件,可以把命令行参数编写到数据文件中,从数据文件中获取,这样可以双击运行程序,避免输入的麻烦。

6. 软件外壳加密

超级狗的外壳加密工具用于实施快速、简单的软件保护,无需像使用 Licensing API 函数那样对源代码进行改动,就可以自动给可执行应用程序加一个保护层。
外壳保护后,被保护程序在开始运行和运行当中会自动地访问超级狗是否存在。如果超级狗不存在,应用程序将不能运行。一旦被保护的软件无法访问超级狗,被保护的软件将提示错误信息。
外壳加密工具可以保护 Win32、Windows x64、以及 .NET 可执行文件 (EXE) 与动态库 (DLL)。外壳加密工具可以防止逆向工程和其他调试措施。

可以通过修改保护设置加强保护方式。

7. 许可升级

最后一个问题就涉及到许可的升级,在一定的情况下赋予用户更多的权限。

步骤:

a. 通过远程升级界面定制工具,生成RUS程序,提供给最终用户。

b. 最终用户使用步骤1提供的RUS程序,生成升级请求c2v文件,并发送给软件开发商。

c. 软件开发商使用超级狗许可设计工具,导入请求c2v文件,修改许可信息后,生成许可升级v2c文件,并发送给最终用户。

d. 最终用户通过远程升级工具,应用许可升级文件,完成一次许可升级。

 

posted @ 2013-08-01 17:59  swzhou  阅读(3189)  评论(2编辑  收藏  举报