威步软件保护防盗版硬件加密狗Wibukey WUPI Samples说明For C++

WUPI Samples For C++说明文档

文档说明

1.C++的例子当安装完后已经安装在您的电脑上,首先打开始-所有程序

-AxProtector-Samples,可进入目录\Software Protection\C++\WupiCalculatorIndex下查找到。

2.该例子的加密原理是由外壳工具AXPROTECTOR和WUPI函数功能组成,用户除了可以用

自动外壳工具保护程序外,还可以对源程序的函数段进行自定义加密,并且可以通过

WUPI函数来控制该函数段在内存中什么时候解密运行,什么时候再次加密保护起来。

3.首先我们打开外壳配置文件,如果您是CodeMeter用户请打开该目录下

WupiCalculator-CodeMeter.WibuAxProject文件,如果您是Wibukey用户则打开

WupiCalculator-WibuKey.WibuAxProject文件,以下我们以Wibukey为例。

4.双击该外壳配置文件后,外壳程序AxProtector也会被自动启动,如下图:

首先要选择需要加密的应用程序exe或者dll,然后下一步如下图:

该步骤和后面一些步骤的说明都可以参考外壳的操作说明,这里不一一介绍说明了,一直下一步到Advanced options选项,通常单纯的自动外壳加密的时候”Activate IxProtector/WUPI” 默认是不激活的,而这里我们需要让外壳和我们的WUPI函数功能组

合在一起使用时,必须打上勾激活。

接着我们就可以进入下一步进行细节的配置。该例子是一个计算器例子,并且对计算器里的计算功能进行模块许可分配,如下图,在许可列表里为每个不同的模块功能分配不同的许可,(这些都针对希望对程序中多个功能进行分开授权管理而设定的,否则的

话用户默认即可不用设置)

然后在下一步里如下图,用户可以把希望做加密的函数名称添加到以下列表中

按添加函数按钮会出现如下图,在Name中填入函数名称(该函数名称必须和程序中一致,否则外壳程序会无法查找到该函数),还可以通过Length来设定加密字节多少,而在license list 里如果需要对该函数功能进行模块分授权管理,即可选择上一步已经设定的许可列表里的许可,则会自动绑定到该函数。

然后就可以一直next到最后一步,按finish来完成加密工作,如下图:

5.以上的步骤是外壳程序自动对WUPI函数进行处理,但是在这之前其实我们必须要程序

中定义好WUPI函数并且编译生成后,才可以用以上外壳加密工具进行。然后下面我们看一下程序,这里请注意,所有在前面外壳加密时设定的加密函数段,必须在程序中做如下处理才可以进行加密,必须先调用WupiDecryptCode()函数进行解密操作,然后才能运行那些加密的函数段如下面的CalcSimpleOperation(),否则将会出错,在运行完以后再调用WupiEncryptCode()函数进行加密,来保证内存中不要长时间暴露解密的函数程序。

(在这里用户可以自行调节,什么时候再加密,比如有些经常会被调用到的大运算量函数考虑到运行效率问题可以延后再进行加密,降低了一些安全性而保证运行效率)

另外可看到WupiDecryptCode()的参数为1,2,3… 这个参数对应的是前面外壳加密时定义的加密函数段的ID如下图。

其他一些函数如WupiDecreaseUnitCounter()只有当设定了计数器时,可以使用该函数来对计数器进行减数操作。另外一些WUPI函数WupiCheckLicense(), 可以用来检测加密锁上是否存在相应的许可单元(请注意该函数后的参数对应的是license lists中的许可列表中的ID而不是上面的函数定义ID),还有一个比较关键的函数WupiCheckDebugger可以在程序中进行定义,它会自动对侦测进程中是否有debugger破解工具,用户可以在程序中多出添加来防止别人尝试破解您的软件。

6.Wupi函数必须引用到头文件wibuixap.h (在目录C:\Program

Files\WIBU-SYSTEMS\AxProtector\Devkit\include)和lib文件WupiEngine32.lib(在目录

C:\Program Files\WIBU-SYSTEMS\AxProtector\Devkit\lib),在编译完后用上述外壳工具进行加密,另外请注意所有需要被加密处理的函数头文件中必须以__declspec(dllexport)申请,这样外壳加密时才能认出该函数并进行加密。另外请注意,编译完程序后,在外壳工具加密前运行的话会要求WupiEngine32.dll动态库,用户不必担心动态库是否暴露在外面的问题,因为外壳加密后,动态库会自动以静态库形式组合到程序中。

7.上述就完成了所有的加密工作,接下来就是加密锁的授权了,例子中定义了基本模块公

司码10:产品码401000这组许可,并且对各个功能进行分模块授权,比如基本功能模块的许可为10:401000:1(其中最后的1是模块分配码),记忆功能授权为10:401000:2,等等,见下面列表:

所以我们必须在空的加密锁上也授权相应许可即可运行相应的功能。关于如何授权的操作可以参看另外Wibukey 使用手册里的授权章节。

Contact Us (联系我们):

威步信息系统(上海)有限公司

地址:上海市杨浦区锦创路20号1602室(200433)

中文网站:https://www.360docs.net/doc/f312065762.html,/cn

电话:86-21-55661790/1/2/3 传真:86-21-55661780

邮箱:info@https://www.360docs.net/doc/f312065762.html,

相关文档
最新文档