当你使用WIBU软授权的程序时,是否遇到过这样一个情况?
你的机器需要升级或更换,但是原来授权厂商已经联系不上了,无法重新为新的机器更新软授权。
那么问题来了,能不能把原来的授权迁移到新的机器上呢?答案是肯定的,这正是本文所要解决的问题。
本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。
本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。
本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。
本文内容仅适用于linux平台,以下工具均为linux平台的工具。
应坛友要求,本文使用的文件将隐去相关信息。
python3
asn1tools
PyQt5
CodeMeter Runtime 6.60
Wibu Reader
一份LIF文件、两份RAU文件(旧授权文件)
一台运行WIBU程序的机器
可以使用Wibu Reader程序中的CodeMeterLin补丁功能,该功能会自动搜寻CodeMeterLin中的根证书并将其修改为root_new.der。成功将会在相同目录下产生CodeMeterLin.bak的备份文件,而CodeMeterLin为修改根证书后的程序。替换后的CodeMeterLin需要放入/usr/sbin中才能生效,并且要给予755的权限。

由于CodeMeterLin的根证书变了,LIF文件也要跟着改变。
使用python QWibuReader.py来启动Wibu Reader,并将LIF文件拖进去。
如果需要对授权信息修改的话,可以先修改再点击fix按钮修复LIF。
修复完后,点击保存按钮保存,本文以0_fix.WibuCmLif为例。

将_fix.WibuCmLif文件放入机器,并运行cmu -i -f 0_fix.WibuCmLif来导入LIF文件。
该步骤是WIBU软授权必须的一步,此步骤用到的RAU文件暂称为RAU1。
首先,需要在机器上运行python wibu_cfg.py来获取机器上的授权信息。该程序会自动扫描/var/lib/CodeMeter/CmAct目录获取所有授权信息,并且在cfg目录下生成类似130-XXXXXX.cfg文件。以下是一份cfg文件样例:
serialNmber是唯一的授权识别号,每次导入LIF它都会改变。
PrivateKey是wbc文件计算出来的CmAct证书所用的私钥,该证书是一份自签证书。
CmActId是CmAct证书的唯一识别号。
Replace字段用于自定义替换规则,可由用户进行填写。
接着,将RAU1文件拖入Wibu Reader,点击设置-授权设置,使用load按钮加载刚在的cfg文件,加载后将在编辑框显示,确认无误后点击ok按钮。
如果有其他需要修改的字段也可以在此时修改,修改后就可以点击fix-RAU按钮(中间有个RAU字样),同时修复成功后点击保存按钮保存即可。本文以1_fix.WibuCmRau为例。

将1_fix.WibuCmRau文件拷贝到机器中,运行cmu -i -f 1_fix.WibuCmRau导入RAU文件。
该步骤是一般是WIBU软授权过程的最后一步,此步骤用到的RAU文件暂称为RAU2。
跟RAU1一般,将RAU2拖入Wibu Reader并加载cfg,修复RAU后保存。本文以2_fix.WibuCmRau为例。
将2_fix.WibuCmRau文件拷贝到机器中,运行cmu -i -f 2_fix.WibuCmRau导入RAU文件。
提示导入成功后,可以运行CodeMeterCC来查看授权情况。

当状态显示为授权已激活时,说明授权已经可用。
更多详细信息可以点击WebAdmin按钮,在浏览器中查看。注意看红框内容,可以查看授权过期信息。

问:怎么在整个过程没有看到RAC文件?
答:本文适用的情况为原软件授权商联系不上,而RAC文件就是用来发给软件授权商的,所以没有必要生成。
问:能修改那些字段?
答:所有字段都可修改,但是某些用于校验之类的字段最好不要动,目前还有很多字段是未知用途的。
问:必须要有旧的授权文件吗?
答:从原理上讲不是必须的,但在原来的授权文件上作修改会避免很多问题。当然,你也可以自己从0开始构造RAU文件。
问:只能在linux平台运行吗?
答:是的,本文研究的内容仅限于linux平台。
window平台的授权过程应该大同小异,但window平台的根证书和CmAct证书的私钥计算应该是不同的,这部分的研究可以留给其他更加有实力的人。
> cmu -i -f 0_fix.Wibu
cmu - CodeMeter Universal Support Tool.
Version 6.60 of 2017-Dec-18 (Build 2869) for Linux
Copyright (C) 2007-2017 by WIBU-SYSTEMS AG. All rights reserved.
The file contains 1 Update:
CmActLtLicense binding information: FirmCode 6000XXX
Execute Update ...
The file contains 1 Update:
CmActLtLicense update: Serial number 130-2600192248, FirmCode 6000XXX.
--> successful
1 successful update done
> cmu -i -f 0_fix.Wibu
cmu - CodeMeter Universal Support Tool.
Version 6.60 of 2017-Dec-18 (Build 2869) for Linux
Copyright (C) 2007-2017 by WIBU-SYSTEMS AG. All rights reserved.
The file contains 1 Update:
CmActLtLicense binding information: FirmCode 6000XXX
Execute Update ...
The file contains 1 Update:
CmActLtLicense update: Serial number 130-2600192248, FirmCode 6000XXX.
--> successful
1 successful update done
[General]
FirmCode=6000xxx
SerialNumber=82 00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
PrivateKey=0xAABBCCDDEEFFAABBCCDDEEFFAABBCCDDEEFF
CmActId=AB CD EF 01 23 45 67
;[Replace]
;Number=1
;[Replace_0]
;AsnType=Content-PI-P
;Path=product-item,pi-expirationtime,time
;Type=bytes;bytes,int,str,bool
;Value=0058000000
[General]
FirmCode=6000xxx
SerialNumber=82 00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
PrivateKey=0xAABBCCDDEEFFAABBCCDDEEFFAABBCCDDEEFF
CmActId=AB CD EF 01 23 45 67
;[Replace]
;Number=1
;[Replace_0]
;AsnType=Content-PI-P
;Path=product-item,pi-expirationtime,time
;Type=bytes;bytes,int,str,bool
;Value=0058000000
[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!