首页
社区
课程
招聘
wibu软授权(六)
2023-3-4 16:16 22835

wibu软授权(六)

2023-3-4 16:16
22835

当你使用WIBU软授权的程序时,是否遇到过这样一个情况?

你的机器需要升级或更换,但是原来授权厂商已经联系不上了,无法重新为新的机器更新软授权。

那么问题来了,能不能把原来的授权迁移到新的机器上呢?答案是肯定的,这正是本文所要解决的问题。

观前提醒

本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。

 

本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。

 

本文内容仅用于学习交流,严禁用作商业用途,造成任何法律问题本人概不承担。

准备和工具

本文内容仅适用于linux平台,以下工具均为linux平台的工具。

 

应坛友要求,本文使用的文件将隐去相关信息。

  • python3

  • asn1tools

  • PyQt5

  • CodeMeter Runtime 6.60

  • Wibu Reader

  • 一份LIF文件、两份RAU文件(旧授权文件)

  • 一台运行WIBU程序的机器

第一步:替换CodeMeterLin中的根证书

可以使用Wibu Reader程序中的CodeMeterLin补丁功能,该功能会自动搜寻CodeMeterLin中的根证书并将其修改为root_new.der。成功将会在相同目录下产生CodeMeterLin.bak的备份文件,而CodeMeterLin为修改根证书后的程序。替换后的CodeMeterLin需要放入/usr/sbin中才能生效,并且要给予755的权限。

 

01

第二步:导入LIF文件

由于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证书的私钥计算应该是不同的,这部分的研究可以留给其他更加有实力的人。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞8
打赏
分享
最新回复 (35)
雪    币: 156
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
lxr677 2023-3-4 21:06
2
0
楼主厉害,把wibu底裤都扒了
雪    币: 179
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wcdabcd 2023-3-4 22:20
3
0
怎么没有授权(五)?
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-3-5 00:46
4
0
wcdabcd 怎么没有授权(五)?
五没什么干货就没发了
雪    币: 179
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wcdabcd 2023-3-5 08:43
5
0

请问楼主:

1、Valid Until=00 2C 0B 44 BF和目标时间是怎么转换的?

最后于 2023-3-5 09:28 被wcdabcd编辑 ,原因:
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-3-5 09:36
6
1
wcdabcd 请问楼主:1、Valid Until=00 2C 0B 44 BF和目标时间是怎么转换的?
从2000年1月1号开始的时间戳
雪    币: 179
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wcdabcd 2023-3-5 10:12
7
0
WibuCmRaU更新成功后,不能再次使用同一个WibuCmRaU文件更新是什么地方限制了?
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-3-5 11:55
8
3
可能是更新次数,这情况我也遇到了。
首次授权和中途授权升级/更新用的rau文件是不同的,也可能是这个原因
雪    币: 179
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wcdabcd 2023-3-5 16:29
9
0
rau文件为什么要准备2个导入2次?
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-3-5 17:03
10
2
wcdabcd rau文件为什么要准备2个导入2次?
正常导入的过程就是有两个rau文件,一个用来生成安全容器的,另一个才能导入授权信息
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-19 10:24
11
0
楼主能不能发一份win系统的证书替换教程。
雪    币: 3534
活跃值: (3514)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yaoguen 2023-3-19 12:32
12
0
同求
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-19 21:08
13
0
bluefish蓝鱼 可能是更新次数,这情况我也遇到了。 首次授权和中途授权升级/更新用的rau文件是不同的,也可能是这个原因
win系统的更新用加密方式一样吗?有没有人测试过。
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-3-19 23:05
14
0
学习班 win系统的更新用加密方式一样吗?有没有人测试过。
类似把,稍微看了一下,过程类似,签名的根证书不一样
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-20 16:40
15
0
有一个是通过网络激活的,没有lic文件,CmAct目录下有三个文件:5000???_092670b69596c67db76c.wbc,5000???_128-17735103.###,5000???_128-17735103.wbb这些文件,win系统是不是与linux不一样呢。
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-20 20:17
16
0
bluefish蓝鱼 类似把,稍微看了一下,过程类似,签名的根证书不一样
楼主,win平台的wbb文件是不是就是linux平台的dyn文件,不同系统文件格式不同?
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
silenc168 2023-3-23 10:50
17
0
bluefish蓝鱼 五没什么干货就没发了

亲  我有一份试用的lic和128-4506746.WibuCmRaU可以帮忙修改时间吗?

最后于 2023-3-23 11:02 被silenc168编辑 ,原因:
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-23 21:06
18
0
silenc168 bluefish蓝鱼 五没什么干货就没发了 亲  我有一份试用的lic和128-4506746.WibuCm ...
楼主的教程很好,兄弟可以学习下,如果是linux系统可以用完整工具,如果是win系统,还是要动态调试下。要本机有可用授权才可以。
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-3-28 11:24
19
0
楼主,你的py代码能不能转个VC的代码,这样WIN平台就可以用了。
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-4-16 11:27
20
0
新版本的codemeter好像用的编码与ASN.1已经有些不同了。
CodeMeter 授权文件的具体细节如下:
1A FF 01 00:这是许可证文件的头部信息,包括版本号和许可证类型等。其中,1A 表示该许可证文件为 v1.2 版本,FF 表示许可证类型为网络版。
18 00 00 00:这是许可证文件的长度信息,表示该许可证文件的总长度为 0x18(24)字节。
57 49 42 55:这是 Magic Number 的十六进制表示,用于标识这是一个 CodeMeter 许可证文件。
42 49:这是 Signature Type 的十六进制表示,指示签名算法的类型为 RSA PKCS#1 v1.5。
46 46 46 46 46 46 46 46:这是 Public Key Hash 的十六进制表示,用于验证许可证文件的签名。
B0 61 00 00:这是 User Data Length 的十六进制表示,指示 User Data 区域的长度为 0x61 字节。
18 00 30 04:这是 Expiration Date 的十六进制表示,表示该许可证文件在 2022 年 4 月 30 日之前有效。
0C 00 14 00:这是 Feature Map 的十六进制表示,表示该许可证文件支持的功能列表。其中,0x0C 表示该许可证文件支持的功能数量为 12,0x14 表示 Feature Map 区域长度为 20 字节。
01 00 07 00 00 00:这是 Feature Map 中第一个功能的信息。其中,0x01 表示该功能的编号为 1,0x0700 表示该功能为节点许可证,0x0000 表示该功能未被使用。
01 11 80 05 00 00:这是 Feature Map 中第二个功能的信息。其中,0x0111 表示该功能的编号为 273,0x8005 表示该功能为 CodeMeter Act 许可证,0x0000 表示该功能未被使用。
C0 6B 51 61 08 00 2C 00:这是许可证文件的加密信息。其中,C0 6B 51 61 是加密用的公钥,08 表示加密算法的类型为 RSA PKCS#1 v1.5,0x2C 表示加密后的密文长度为 44 字节。
43 00 6D 00 41 00 63 00 74 00 20 00 4C 00 69 00 63 00 65 00 6E 00 73 00 65 00 20 00 46 00 69 00 6C 00 65 00:这是 User Data 区域的信息。其中,"CmAct License File" 表示该许可证文件为 CodeMeter Act 许可证。
09 00 0C 00 01 00 05 00 00 00:这是 User Data 区域中的一个字段,表示该许可证文件为单机许可证,有效期至 2022 年 5 月 1 日。
00 00 02 01:这是 User Data 区域中的一个字段,表示该许可证文件的版本号为 2.1。
0C 00 D0 61 00 00 C0 FF 00 00:这是 User Data 区域中的一个字段,表示该许可证文件的信息。具体来说,0x0C 表示该字段长度为 12 字节,0xD0610000 表示硬件锁序列号为 D061,0xCFFF0000 表示许可证可以在任意 IP 地址下使用。
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-4-17 00:10
21
0
楼主好,请教两个问题,
1.codemeter的根证书是每个软件都不同,还是都是使用wibu公司的统一根证书,我想应该是不同的软件开发商提供不同的证书;
2.如果修改了文件如rac、rau,理论上应该可以通过patch签名来达到认可新文件的方式吗?证书的有效性是否受影响。
雪    币: 19270
活跃值: (28900)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-4-17 09:06
22
1
感谢分享
雪    币: 1595
活跃值: (2444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学习班 2023-4-18 23:44
23
0

楼主,请问下你有没有6.50的codemeter的runtime,win版本的,谁能提供一下,谢谢。6.50有多个版本,分别为6.50、6.50a、6.50b、6.50c,我是要6.50的500版本,a、b、c是501、502、503版本。

最后于 2023-4-18 23:50 被学习班编辑 ,原因:
雪    币: 156
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
lxr677 2023-4-23 12:37
24
0
按步骤替换CodeMeterLin的根证书后并导入修改后的授权,codemeter服务启动后,会几分钟后自动停止,重新启动codemeter服务也会几分钟后自动停止
雪    币: 9674
活跃值: (6657)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
bluefish蓝鱼 2023-4-27 00:43
25
0
学习班 楼主,请问下你有没有6.50的codemeter的runtime,win版本的,谁能提供一下,谢谢。6.50有多个版本,分别为6.50、6.50a、6.50b、6.50c,我是要6.50的500版本, ...
win的我只有7.50版本的
游客
登录 | 注册 方可回帖
返回