wibu软授权(六)
2023-3-4 20:18:20 Author: bbs.pediy.com(查看原文) 阅读量:9 收藏

当你使用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的权限。

01

由于CodeMeterLin的根证书变了,LIF文件也要跟着改变。

使用python QWibuReader.py来启动Wibu Reader,并将LIF文件拖进去。

如果需要对授权信息修改的话,可以先修改再点击fix按钮修复LIF。

修复完后,点击保存按钮保存,本文以0_fix.WibuCmLif为例。

02

将_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为例。

03

将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来查看授权情况。

04

当状态显示为授权已激活时,说明授权已经可用。

更多详细信息可以点击WebAdmin按钮,在浏览器中查看。注意看红框内容,可以查看授权过期信息。

05

  1. 问:怎么在整个过程没有看到RAC文件?

    答:本文适用的情况为原软件授权商联系不上,而RAC文件就是用来发给软件授权商的,所以没有必要生成。

  2. 问:能修改那些字段?

    答:所有字段都可修改,但是某些用于校验之类的字段最好不要动,目前还有很多字段是未知用途的。

  3. 问:必须要有旧的授权文件吗?

    答:从原理上讲不是必须的,但在原来的授权文件上作修改会避免很多问题。当然,你也可以自己从0开始构造RAU文件。

  4. 问:只能在linux平台运行吗?

    答:是的,本文研究的内容仅限于linux平台。

    window平台的授权过程应该大同小异,但window平台的根证书和CmAct证书的私钥计算应该是不同的,这部分的研究可以留给其他更加有实力的人。

Android安全&逆向进阶


文章来源: https://bbs.pediy.com/thread-276310.htm
如有侵权请联系:admin#unsafe.sh