CodeMeter嵌入式开发包应用

Lars Møller avatar

WIBU

2023-09-11

文章详细介绍了CodeMeter嵌入式开发包(CodeMeter Embedded SDK)的应用和设置。主要包括两种用途:一是在嵌入式设备上调用CodeMeter API进行加密锁功能;二是软锁与硬件属性的绑定。文章还提供了具体的操作步骤和代码示例,以及如何在嵌入式设备上进行授权和激活的流程。这为嵌入式开发提供了全面的指导。

前言

CodeMeter嵌入式开发包(CodeMeter Embedded SDK)主要提供2种用途:
1.  在嵌入式设备上使用CodeMeter API的调用加密锁相关功能。
2.  软锁需把授权信息和硬件属性进行绑定,而在嵌入式设备上由于硬件类型繁多,所以无法自动获取硬件信息,需通过嵌入式开发包来定制需要绑定的硬件属性接口;并且制作相应的授权导入导出工具。

嵌入式开发包的基本应用

解压嵌入式开发包(文件名CmE_Linux_ARM_X.XX),其中linux-armv6,7,8目录下分别对应了不同架构平台上的CodeMeter API静态库libwibucmembedded.a和头文件。只需要引用相应的库和头文件即可调用API里相关函数,API的具体应用本手册不详细介绍,可以参看标准X86平台上的例子和手册。    
说明:注意在嵌入式平台上调用CodeMeter API代码的开始需要加上CmStaticLibOnInit();调用结束则以CmStaticLibOnExit()结尾;
软锁因为要涉及到嵌入式设备上硬件属性绑定,用来绑定授权的相关工具都需要利用开发包中的adptersample例子来实现。
Adptersample例子的使用流程
1.  把adaptersample拷贝到嵌入式开发机上
2.  该例子是以cmake来进行生成的,请先安装好该工具。
3.  把对应嵌入式平台的libwibucmembedded.a静态库拷贝到adaptersample下的lib目录里。
4.  在adaptersample目录下创建build目录(mkdir build),并进入该目录。
5.  执行cmake ../adapter,执行成功如下图;
6.  执行命令行make,开始编译链接。编译成功后会在目录下生成3个执行程序, 三个执行工具拷贝到最终嵌入式环境上,后面激活授权都会使用到。
Import:用来导入WibuCmLif和WibuCmRaU文件
Context:用来生成WibuCmRaC环境文件
Listcontainer:用来显示当前软授权的信息
7.  在WINDOWS上安装CodeMeter SDK开发包,插上测试锁或者母锁后,执行命令行:CmBoxPgm -f6000010 -lif:test.WibuCmLif -lfs:cus:MacPlugIn -lpn:LIF -lpid:2001
执行目录里则会生成test.WibuCmLif,把该文件拷贝到最终嵌入式设备上。
 说明:-f6000010为测试公司码,公司码规则查看标准CodeMeter使用手册,如果您正式购买有了唯一公司码后,请替换成正式公司码,后续步骤里出现的6000010都需替换。
8.  在最终嵌入式环境里执行命令行./import test.WibuCmLif导入软授权容器。
9.  根据上图容器里的序列号生成远程文件context.WibuCmRaC,执行命令行:
./context 130-3510004041 6000010 context.WibuCmRaC
10.  把生成的context.WibuCmRaC拷贝到WINDOWS上,使用以下命令行生成激活文件context.WibuCmRaU,并把文件拷贝到嵌入式设备上。
CmBoxPgm -f6000010 -cau -p13 -cau -laf:context.WibuCmRaC –L
11.  在嵌入式设备上执行命令行完成激活,此时该设备上软授权已经绑定激活。
./import context.WibuCmRaU

软授权的自定义硬件属性绑定方法

软授权可通过开发包自定义硬件属性的绑定,在例子里默认绑定的是嵌入式设备的MAC地址,如果您希望绑定其他硬件属性,比如CPU唯一序列号。需要在CMAKE执行前修改例子里代码(/adaptersample/adapter/binding.c),打开文件可以看到除了公司码6000010以外还有定义”MacPlugIn”,MacPlugIn名称可修改,但是必须和生成WibuCmLif时候的命令行里参数一致。
get_mac_binding函数里获取了设备上的MAC地址的值并对该值绑定,如果您要绑定设备其他属性,可以把其替换掉,换成读取系统其他硬件属性的函数,比如get_cpu_id()。由于不同嵌入式设备获取硬件信息的函数都不一样,请自行查询并替换。

AXPROTECTOR中集成自定义硬件属性绑定规则

 如果软授权中修改了绑定硬件属性规则,那么AxProtector自动加密嵌入式程序时需要集成新的绑定规则,这个绑定规则包含在libCmActAdapter.so中,AxProtector加密的时候,需把-XC的参数改成-XCA,然后把libCmActAdapter.so和需要加密的应用放在一起,AxProtector加密的时候会自动把该自定义的绑定规则集成到加密程序里一起打包,所以该so只在加密时候需要。
生成libCmActAdapter.so的方法
使用cmake命令行时候使用以下命令行,make后就会生成该文件。
Cmake -DDYNAMIC_ADAPTER=ON ../adapter
 说明:上述命令行生成libCmActAdapter.so, 只应用于AxProtector加密的时候,另外make生成的同时文件夹中其他执行工具比如import,context等等都不可用。软加密激活流程中使用到的这些执行应用请仍然使用前面无-DDYNAMIC_ADAPTER=ON参数模式下生成的程序。

交叉编译方式

上述流程是按照在嵌入式ARM开发板上直接编译运行的,如果是通过交叉编译工具链的方式,请咨询威步技术人员获取相应交叉编译链的配置文件,并且把文件拷贝到以下目录:
/adaptersample/adapter/cmake/
然后在build目录里执行如下命令行:
Cmake -DCMAKE_TOOLCHAIN_FILE=../adapter/cmake/linux-armv7hf-gnu.cmake ../adapter/
请不要忘记把对应平台的静态库文件libwibucmembedded.a拷贝到adaptersample下的lib 目录里,最后执行make来生成相应程序。
免费试用
0