当你使用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文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 | > 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
|
该步骤是WIBU软授权必须的一步,此步骤用到的RAU文件暂称为RAU1。
首先,需要在机器上运行python wibu_cfg.py
来获取机器上的授权信息。该程序会自动扫描/var/lib/CodeMeter/CmAct
目录获取所有授权信息,并且在cfg目录下生成类似130-XXXXXX.cfg
文件。以下是一份cfg文件样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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
|
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文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | > cmu - i - f 1_fix .WibuCmRaU
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 3 Updates:
CmActLtLicense binding information: FirmCode 6000xxx
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
Execute Update ...
The file contains 3 Updates:
CmActLtLicense update: Serial number 130 - 2600192248 , FirmCode 6000xxx .
- - > successful
1 successful update done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
2 successful updates done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
3 successful updates done
|
该步骤是一般是WIBU软授权过程的最后一步,此步骤用到的RAU文件暂称为RAU2。
跟RAU1一般,将RAU2拖入Wibu Reader
并加载cfg,修复RAU后保存。本文以2_fix.WibuCmRau为例。
将2_fix.WibuCmRau文件拷贝到机器中,运行cmu -i -f 2_fix.WibuCmRau
导入RAU文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | cmu - i - f 2_fix .WibuCmRaU
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 6 Updates:
CmActLtLicense binding information: FirmCode 6000xxx
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
Execute Update ...
The file contains 6 Updates:
CmActLtLicense update: Serial number 130 - 2600192248 , FirmCode 6000xxx .
- - > successful
1 successful update done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
2 successful updates done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
3 successful updates done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
4 successful updates done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
5 successful updates done
CmDongle update for 130 - 2600192248 (FirmCode 6000xxx ).
- - > successful
6 successful updates done
|
提示导入成功后,可以运行CodeMeterCC
来查看授权情况。
当状态显示为授权已激活时,说明授权已经可用。
更多详细信息可以点击WebAdmin
按钮,在浏览器中查看。注意看红框内容,可以查看授权过期信息。
问:怎么在整个过程没有看到RAC文件?
答:本文适用的情况为原软件授权商联系不上,而RAC文件就是用来发给软件授权商的,所以没有必要生成。
问:能修改那些字段?
答:所有字段都可修改,但是某些用于校验之类的字段最好不要动,目前还有很多字段是未知用途的。
问:必须要有旧的授权文件吗?
答:从原理上讲不是必须的,但在原来的授权文件上作修改会避免很多问题。当然,你也可以自己从0开始构造RAU文件。
问:只能在linux平台运行吗?
答:是的,本文研究的内容仅限于linux平台。
window平台的授权过程应该大同小异,但window平台的根证书和CmAct证书的私钥计算应该是不同的,这部分的研究可以留给其他更加有实力的人。
Android安全&逆向进阶