CodeMeter使用手册

Lars Møller avatar

WIBU

2020-12-03

CodeMeter使用手册,介绍加密狗使用方法,威步CodeMeter加密狗使用方法详细解答。

1. 安装步骤

1.1 光盘安装

放入光盘自动启动图表1界面,选择中文安装界面,在图表2中看到CodeMeter SDK和CodeMeter User CD 2个选项。
图表1
SDK是由软件开发商所安装的内容,其中包括加密、授权写锁、API例子等各种工具和说明文档。 User是由最终用户安装的客户端驱动程序。在这里我们安装CodeMeter 软件安装包(SDK)(注:其中已经包含了User客户端),安装中可全部默认即可。
图表2

2. 功能导航

2.1 进入CodeMeter功能导航界面

安装完毕后会自动跳出图表3内容或者通过打开"开始"->"所有程序"-> "CodeMeter" -> "CodeMeter Start Center"
图表3

2.2 四个功能模块

AxProtector 为外壳自动加密工具,可以针对EXE或者DLL还有JAR等格式进行自动加密打包来保护用户的软件,操作简便,安全性强,无需程序开发经验同样能完成加密工作。
API Guide  包含里所有的CodeMeter API函数接口,可由开发商在其程序中进行调用。可通过该工具了解WIBU所有API的代码调用示例和执行效果,支持几乎所有开发语言版本。
License Editor  为简化版的加密锁写锁授权工具,可以写入授权许可到加密锁中。
Samples  其中包含各个开发语言的API例子,更进一步了解我们API函数实际是如何结合保护程序的。

2.3 注意事项

该注意事项只针对正式用户,测试用户请忽视。当正式购买FSB母锁后,我们会另外发送一个Cmfirm-xxxxxxxx.wbc文件,其中包含了FSB母锁上唯一的公司码信息(公司码一般会写在FSB的挂牌上),FSB母锁必须配合该文件一起才能对软件进行加密或者授权子锁,所以在使用母锁前必须把该Cmfirm-xxxxxxxx.wbc拖入到下图(图表2)中的CodeMeter控制中心许可这一栏(可通过"开始"->"所有程序"-> "CodeMeter" -> "CodeMeter Control Center"),提示导入成功后,重启系统即可开始加密或写锁操作。对于重新安装系统或者更换其他机器时请重新导入该文件。
图表4

3. 如何加密你的软件 

3.1 打开AxProtector自动加密工具

 首先会让您选择您要加密的程序类型,分成以下几种:
   Windows Application or DLL 针对Windows 32或者64 bit的应用程序(如C++或者Delphi开发的EXE或者DLL)
   .Net assembly 针对.NET架构开发的exe或者DLL。
   Linux Application or share object 针对Linux的执行程序或so库文件
   Mac OSX Application or Dylib 针对Mac的应用程序或库文件
   Java application(jar-file) 针对Java的执行程序jar
图表5

3.2 选择要加密的文件

选择程序类型进入AxProtector后,作为演示我们先加密一个应用程序比如CodeMeter开发包安装后自带的API例子 (C:\Users\Public\Documents\WIBU-SYSTEMS\Software Protection\C++\Special\CmDemo\release \CmDemoGUI.exe)来测试下加密的效果,你同样也可以使用你自己的软件来作为测试。
进入第一步图表6,第一栏里选择想要加密的EXE或者DLL文件,这里我们选择例子里的执行程序CmDemoGUI.exe,而下面一栏则自动生成加密后exe的存放路径和文件名,一般在原文件同目录下一级的protected目录下,然后下一步Next。
图表6

3.3 选择您要绑定的许可类型

 请在Licensing system里选择默认的CodeMeter(如图表7),其中Firm Code每个开发商正式购买以后都会分配到一个唯一固定号码,并且会有一把含有该唯一公司码的特殊授权的母锁FSB,而Product Code可由开发商自定义数值来定义不同的软件产品或者模块。而Feature Map为可定义不同的版本,默认为0。Firm Code和Product Code组成了一组许可信息,其实是用该信息通过算法加密了你的软件,而分发给最终客户的加密锁上也必须要有相应的许可才能解密使用该软件,也就是在加密锁上必须有相同的一组Firm Code和Product Code。这里我们公司码firm code请选择6000010,产品码Product Code假设为15,其他都默认然后下一步。
注意:在这里我们使用Firm Code为6000010(它是用来给用户测试的一个公司码,没有唯一性,请不要在正式发布产品时使用。如果你已经是正式用户并且购买了母锁FSB,并且导入了先前2.3注意事项中提到的Cmfirm-xxxxxxxx.wbc文件,请选择FSB挂牌上的那串公司码而不是6000010)。
图表7

3.4 运行时心跳时间设置

图表8这个步骤暂不做详细介绍,默认即可,继续按下一步。
图表8

3.5 加密强度设定

该步骤(图表9)是对加密强度进行设定,左边可选择几种加密增强模式,而右边可设定反侦测Debugger破解的防护级别,在这里默认选项加密强度也已经相当高,如果希望获得更强的保护可以联系我们技术人员来根据不同的情况改变相应选项。然后继续下一步。
图表9

3.6 自定义弹出错误框

该步骤可以根据用户要求自定义设定弹出错误信息框的内容(3.9章节就会介绍如何自定义错误信息内容),默认下一步。
图表10

3.7 高级选项设定

这里暂不介绍,请默认并点击下一步。
图表11

3.8 加密完成

最后点击Finish完成设定开始加密。注意:加密时必须插上母锁FSB或者测试母锁。
图表12
加密成功后,可到相应目录找到加密后的EXE或者DLL。加密后的文件通常会比原文件更大(一般增加1M左右尺寸)。
现在我们来测试一下加密后的效果吧,请启动加密后的CmDemoGUI.exe。 (如果用户测试自己的程序,请注意通常用户的程序不止一个EXE或者DLL,还包含其他的依赖库DLL,所以请把加密后的程序拷贝到原来的目录中覆盖并运行),然后看到以下出错信息(图表9),错误信息可自定义编辑,参照稍后章节3.9。
图表13
错误内容提示没有找到firm code 600010, product code 15这组许可(如果在前面加密软件时使用正式FSB唯一的公司码即会显示你的公司码而不是6000010),所以不能运行软件。我们取消该对话框后接着我们插入加密锁,再次打开该加密后的CmDemoGUI.exe,我们会发现仍然一样的出错信息,还是不能使用该软件,这个是因为加密锁上虽然插上了但是其中并没有对应于软件的firm code 6000010, product code 15这组许可,所以这把加密锁没有权限打开。为了打开并使用该软件,我们在下面开始章节介绍如何授权写加密锁,让加密锁拥有正确的许可信息。

3.9 编辑出错信息框的方法

进入到加密文件生成的目录下,可看到除了加密生成的EXE或者DLL文件以外,还有UserMsg.bmp和很多UserMsgXX.ini文件,这些ini是各个国家语言的错误信息,中文的就只需要保留UserMsgZh.ini,可用记事本打开并编辑ini文件,里面包含了所有的弹出框出错信息,修改其中内容后,弹出错误信息框中内容也会相应变更。

4. 写锁授权许可

4.1 进入许可编辑器

还记得前面介绍的导航界面吗,现在我们选择写锁工具License Editor.
图表14
打开License Editor后,可看到左边的一个树形可展开的目录(图表15),最上一级的序列号X-XXXXX是加密锁的唯一序列号也代表着加密锁,而展开的内容即代表加密锁中的许可内容,我们可以点开树形目录查看加密锁中的内容如下:
图表15
我们可以看下目录当中浅蓝色一列号码都代表着一个firm code,而其中就有着测试公司码6000010,而再往下展开我们可以看到橘红色号码13,则代表着product code。此时我们知道了该加密锁中已有firm code 6000010, product code 13这组许可,但是没有product code 15,所以它无法使用我们先前用了firm code 6000010, product code 15加密的程序。如果在目录中没有找到Firm Code 6000010,那就需要添加一条。如果已有Firm Code 6000010请跳过4.2章节。

4.2 如何添加公司码

我们可以通过右击最顶级目录加密锁序列号X-XXXXXX,选择添加项目,并弹出下列弹出框(图表16),可选择你要添加的公司码。
公司访问数第一次添加默认即可,这个值是在有人尝试破解,加密锁就会自动保护锁住时候会把该值变成0,此时你就可以通过修改这个公司访问数为禁用或者任意数值即可解锁。
公司码文本是描述信息,比如填写你的公司名字等等,这个是可选项,也可不填。
图表16

4.3 如何添加产品码

右击你的公司码并选择添加项目,如图表17
图表17
弹出添加产品码项目,在这里添加对应的产品码15,如图表18
图表18
然后点击弹出框右下角的 ,可看到列出的所有产品码附加选项(图表19)。这里可不选那么这组产品码就没有任何限制。
图表19
产品码的选项功能介绍如下:
   使用期限: 可以设定一个天数,当第一次运行该加密软件,加密锁会自动开始计时,直到达到时间点后禁止软件运行。
   过期日期:类似于使用期限的功能,它可以设定某一个具体的时间点来限制该软件无法再继续使用。
   激活日期:可以设定加密软件必须在某年某月某日这个时间点才能开始运行。(到达该时间点时需要强制上网认证一下所有时间才能开始运行软件)
   许可数量:前面介绍过的网络锁的网络访问并发人数的设定。
   模块信息:用来对应于AxProtector中的Feature Map来进行版本控制。
   文本:通常可写入一些该产品码定义的描述信息。
   计数器:可以设定该加密软件被打开运行的次数。(也可以通过后台每隔一定的时间减少一次该数值,来计算软件的实际使用时间)
在这里测试我们除了设定Product Code为15,其他都不作设定,用户也可以根据自己的需求对该许可进行限制。设定好参数并点击执行后产品码15就被写入到加密锁中了。如图表20
图表20
注意:上述写锁是按照测试锁来演示的,而测试锁本身即是母锁也是子锁,所以是把许可写入到本身测试锁上,而正式用户写锁时通常会插上母锁FSB和子锁,此时会显示2个加密锁序列号,其中一个是正式母锁FSB(带{FSB}即为母锁,不带该标记则是子锁),另外一个是子锁,而用户只需要对子锁进行授权写锁(如图表21),请右击子锁序列号并创建公司码和产品码,步骤和前面测试锁写锁一致,请不要再对FSB标记的加密锁进行许可写入了。
图表21
好了最后我们再次打开先前用Firm Code 6000010, Product 15加密的CmDemoGUI.exe,可以看到欢迎画面,点击OK即可启动软件。

5. 网络锁的应用

前面介绍了如何加密软件和加密锁的授权,最后插上已授权的加密锁就可以打开加密的软件了,一般情况下我们称此为本地加密锁的应用,也就是加密锁插在哪台机器上,加密的程序就只能在该台机器上运行。
另外还有一种网络锁的应用可以来满足用户需求,如客户希望能把加密锁插在一个网络互联环境的某台服务器上,然后让其他所有的用户机器能通过访问这台服务器上的加密锁来打开自己机器上的加密程序,下面我们介绍下如何使用CodeMeter的网络应用功能。

5.1 AxProtector加密时候的网络锁设定

网络的应用只需要在前面介绍的加密和授权的步骤中改动一下设置就可以激活网络功能。首先,在加密步骤这里,在Subsystem选择Network(如图表18),这样加密后的软件才会进行网络查找。License options里建议选择Station share模式,即把每台访问电脑只算作为一个网络并发点数。相关参数详细解释如下:
Subsystem里可选择加密锁的4种访问模式(如图表22):本地(Local),网络(Network),先本地后网络查找(Local - Network), 先网络后本地查找(Network - Local)。本地模式是只能由插着正确许可的加密锁的电脑才能使用该加密后的软件,而网络模式可以选择任意一台电脑插上正确许可的加密锁作为服务器,然后可以通过TCP/IP协议的网络由多台电脑同时来使用加密后的软件。
License options里可以设定访问加密锁时候的占用方式(如图表22):
Normal user limit:按照启动的加密程序进程个数来计算,即没打开一个加密程序进程就会被计算作为占用一个网络并发数,也就是说在一台电脑上打开多个该加密软件,那它也同时占用着多个网络并发数。
Station share:按照电脑来计算,也就是说同一台电脑上即使打开多个加密软件进程都只算作为占用一个网络并发数。
WibuKey compatibility: 在网络锁连接模式下按照第一种Normal user limit来计算并发数,在本地单机模式下不计算网络并发数,即可无限次打开加密程序进程。
No user limit: 不占用网络并发数。
图表22

5.2 授权加密锁时候的网络锁设定

其次,在写锁授权操作的时候(图表23),许可数量如果不设置即默认为网络许可并发数1,也就是只能一个用户来访问加密锁。如果你希望有多个用户并发使用,那么您需要选择许可数量并设定一个最大并发数值,它的作用就是控制网络中最大的并发访问加密锁的人数。(建议该值保持在150以内,虽然理论上最大并发数没有限制,但是如果访问用户数同一时间太多,并且都要求加密锁有复杂的加解密运行会造成加密锁无法负担)。
图表23

5.3 加密锁服务器的网络锁设定

最后一步,您选择局域网中任意一台机器作为服务器端,安装好CM客户端驱动后,进入右下角任务栏里的CM图标出现CodeMeter控制中心,点击Web管理界面
图表24
在弹出的网页中点"配置" -> "服务器"->"服务器连接"的页面里(图表25),选择启用"网络服务器",并点设置按钮完成设置。
图表25
最后在这台服务器上插上加密锁,这样就完成了网络锁的设置了,此时在局域网中同一网段里的其他机器都可以自动共享这把加密锁。
注意:如果插加密锁的服务器和客户端机器在不同网段里,客户端是无法自动查找到服务器的,所以需要在每台客户端机器中的Web管理界面页面中设置服务器的IP,请注意之前是服务器端机器的Web管理界面设置,这里是每台客户端机器上设置。在"配置" -> "基本"->"服务器列表"中的页面里"添加新服务器",也就是加入服务器的IP地址,最后点设定即可(如图表26)。
图表26

6. 远程更新加密锁

加密锁的读写都必须要有母锁同时插着才可以执行,如果您的加密锁已经发给最终客户并且需要对客户加密锁里的内容进行更新时候(比如加密锁过期时间到期了),客户通常必须寄回加密锁,在您这里更新完后再发还回去,这势必造成时间上的延误。CodeMeter加密锁为了这种情况提供了远程更新功能。下面介绍一下如何进行远程更新:

6.1 生成用户的远程文件

在最终客户插入加密锁的机器里必须安装CM客户端程序。右击桌面- > 新建 -> Wibu Control File.(注意:此方法仅适用于硬锁,软锁远程文件提取请参考CmAct指导手册) 如图表27
图表27
会出现如下的界面(图表28),选择第一个CmDongle Remote …, 点击Create按钮。
图表28
然后会出现下面界面(如图表29),在列表里选择您的唯一公司码,如果没有该公司码,请点击下面的新Firm Code来填写您的公司码,点击确定后就会在桌面上生成MyCmDongle.WibuCmRaC的远程文件。让客户把该文件发给开发商您。
图表29
这里需要注意的是每次最终客户通过远程方式来更新加密锁中授权的时候,一定要重新生成新的WibuCmRaC文件(过去生成的WibuCmRaC在完成更新后即失效),否则就会造成更新失败并有可能浪费授权。详情请咨询威步技术支持。

6.2 使用License Editor远程授权加密锁

获得远程文件后,打开License Editor。 选择文件 –> 打开环境文件,选择客户发来的远程文件。如图表30:
图表30
导入文件后,就会出现该加密锁的所有许可信息,这时就可以如同编辑本地加密锁一样编辑其中内容,最后点击执行后除了原来的WibuCmRaC文件外还会生成2个文件WibuCmRaM和WibuCmRaU,如图表31
图表31
最后把WibuCmRaU文件发给最终客户,他插上加密锁并双击该文件即可完成加密锁升级操作。
备注:另外还有一个WibuCmRaM文件,开发商可以保留该文件,如果最终用户下次升级的时候,可以不用再生成WibuCmRaC文件发过来,只需要开发商直接用WibuCmRaM导入到License Editor里进行读写生成新的WibuCmRaM和WibuCmRaU,并把WibuCmRaU发给最终客户,依次循环每次必须保留最新的WibuCmRaM文件,这样最终用户就可以不用再发升级文件WibuCmRaC了。当然开发商也可以不保留WibuCmRaM,让用户每次升级都发送新的WibuCmRaC过来。

7. 加密锁锁住原因以及如何解锁

7.1 运行加密程序出现Error 38错误

加密程序在某些机器上运行可能会出现错误The Firm Access Counter is zero, Error 38。如图表32 
图表32
该错误引起原因是CodeMeter侦测反破解系统发现可能有人在尝试破解加密程序就会自动锁住加密锁,一旦锁住加密锁后,就不可能再继续进行破解工作。当然有时遇到该错误并不一定是真的是客户在尝试破解,也有可能是客户运行着某些类似破解调试工具或者一些其他软件的驱动层模拟USB破解补丁也可能造成加密锁误锁住。

7.2 如何解锁

一旦加密锁锁住后无法再正常使用,就需要帮助客户进行解锁操作。
首先让客户插上锁住的加密锁并生成远程文件(生成方法参考章节6.1)。获得从客户那里的远程文件后使用License Editor授权工具进行写锁操作(参考章节6.2)。导入到License Editor后,选择您的公司码进行修改项目,如图表33。弹出更新公司选项的设定框,可以看到公司访问数为0,其实锁住加密锁该值就会变成0,修改成其他数值或者禁用即可解锁,如图表30。
最后点击执行后会生成激活更新文件WibuCmRaU,发给用户升级加密锁即可解锁(参考6.2)。
图表33
图表34

7.3 查找锁住原因

一些客户那里有时会反复出现锁住加密锁,即帮助其解锁后又会再次锁住,可以到该用户电脑的C:\ProgramData\CodeMeter\Logs目录下获取LicenseLock.log文件并联系发送给我们WIBU技术支持可查看是什么软件或者破解补丁引起加密锁锁住(请注意该功能需要CM客户端6.40以上版本才能支持)。

8. Linux程序的加密及运行

8.1 如何加密和授权

加密和授权都需要在Windows上来完成,所以加密步骤请参照章节3(在加密开始选择程序类型时请选择Linux Application or share object),授权部分参照章节4。

8.2 如何运行加密后的Linux程序

请先在最终需要运行的Linux系统上安装CodeMeter客户端程序(安装包可在光盘/CodeMeter-User/Linux目录下或者官网下载中心里找到)。客户端安装程序分32位,64位,RPM和DEB格式的安装包,请选择对应您的系统版本的安装包进行安装,安装命令行如下:
rpm 格式: [rpm -ivh CodeMeter-[CodeMeter-Version].[Package Number].i386.rpm]
deb 格式: [dpkg -i CodeMeter-[CodeMeter-Version].[Package Number]_i386.deb]
安装完客户端后只要把在Windows上加密完成的so库文件拷贝到Linux最终运行机器上并插上带有对应授权的加密锁运行即可。

9. 加密锁采购中的母锁更新流程

9.1 CodeMeter母锁许可的概念

CodeMeter 由两部分组成:硬件+写锁授权。在购买CodeMeter产品之后,WIBU会为每个开发商分配公司码以及FSB母锁,在初次采购时,WIBU会将采购硬件加密锁时对应的写锁授权写入FSB中,无需开发商自行操作。开发商在拿到FSB以及加密锁之后,可以通过CodeMeter工具将开发商授权写入到加密锁中,每一次创建公司码(PerContainer授权)或产品码(Per Transaction授权)都会扣除FSB中的写锁授权。等开发商再次采购CodeMeter加密锁时,WIBU会将新采购的写锁授权通过邮件形式发送给开发商,开发商需要手动将该部分写锁授权导入到FSB中。

9.2 如何导入写锁授权

自CodeMeter 6.0开始,WIBU推出了UFC通用公司码,因此目前现存两种公司码,需要通过不同方式进行导入:
a.     普通公司码(10****):该公司码的更新方式为文件方式,WIBU会直接将更新文件通过邮件或是QQ等工具直接发送给开发商。开发商拿到该文件之后,插上FSB,直接双击即可导入新的写锁授权。
b.    或者打开http://context.wibu.com.cn/  插上您的普通母锁,输入您的公司码,点击upload,然后输入您的公司名称,通知商务即可。
c.     通用公司码UFC(60*****):该公司码的更新方式为在线/离线方式。默认更新方式为在线。WIBU会给开发商一个序列号,例如8CVR7-Z3WFK-NGWSP-GX6P7-S7MPY。开发商需要通过在线方式进行许可导入。
      i.       首先打开http://license.wibu.com,在页面上Ticket框中输入序列号,点击Next
图表35
      ii.      确认许可状态,点击Activate
      iii.     选择目标CmContainer进行激活,切记选择FSB
图表36
图表37
      iv.     激活完成,点击OK,此过程时长依网速原因,可能达几十秒,请耐心等待
      v.      如果连接FSB的计算机无法上网,可通过离线方式进行激活,在输入序列号点击激活之后,至第三步选择CmContainer时,可以点击右下角的Offline License transfer。之后可以选择WibuCmRaC文件进行激活。如果使用此种方式,请事先生成FSB的WibuCmRaC文件。