首页
论坛
课程
招聘
[调试逆向] [求助]寻flexlm的pubkey替换方法,针对linux下的一套软件,可付费
2018-10-14 14:00 4939

[调试逆向] [求助]寻flexlm的pubkey替换方法,针对linux下的一套软件,可付费

2018-10-14 14:00
4939


寻flexlm的pubkey替换方法,针对linux下的一套软件,可付费

是替换pubkey,不是修改 pubkey verify返回值。

(修改pubkey verify返回值的方法,会造成某些软件变得很不稳定。)

替换成已知pubkey之后,我自己能生成对应license

软件是linux下的。所以倾向于找更熟悉linux的人。

破解纯粹是我的个人爱好,也知破解不易

可付费,几千应该是我可以承受的范围。

License Daemon其实就是常见的cdslmd,你可以认为是最新版,但是这个版本至少稳定了好几年了。

如果有人已经有现成的替换工具,也愿意购买



[看雪官方培训] Unicorn Trace还原Ollvm算法!《安卓高级研修班》2021年6月班火热招生!!

最后于 4天前 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞0
打赏
分享
最新回复 (45)
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2018-10-15 13:00
2
0
"修改pubkey verify返回值的方法,会造成某些软件变得很不稳定。"

修改 l_pubkey_verify 函数返回值的方法没有问题,胡乱修改或乱改一通才是导致软件不稳定或崩溃的真正原因。
雪    币: 176
活跃值: 活跃值 (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bruce梨 活跃值 2018-10-15 13:52
3
0
厉害了我的谁 "修改pubkey verify返回值的方法,会造成某些软件变得很不稳定。" 修改 l_pubkey_verify 函数返回值的方法没有问题,胡乱修改或乱改一通才是导致软件不 ...
谢谢大神回复。
不过确实我发现有些软件 修改了l_pubkey_verify 之后,无法运行。 check out到license,立刻又check in,然后秒退
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2018-10-18 15:20
4
0
这个 daemon 我试了手工替换 SIGN2=120 位长度的 pubkey 然后编译 lmcrypt 生成 license 结果 daemon 是可以跑起来的。还有直接 patch l_pubkey_verify 也是可以的。不过如果客户端那里有很多被 flexnet 保护的文件的话,还是建议楼主直接 patch l_pubkey_verify 算了。
雪    币: 176
活跃值: 活跃值 (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bruce梨 活跃值 2018-10-18 17:30
5
0
厉害了我的谁 这个 daemon 我试了手工替换 SIGN2=120 位长度的 pubkey 然后编译 lmcrypt 生成 license 结果 daemon 是可以跑起来的。还有直接 patch l_pubke ...
望赐教
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2018-10-18 18:11
6
1
在 call l_pubkey_verify 处断下,查看栈所指向的内存里的 pubkey, 你的 license 长度是 120 位的所以对应的是第三组也就是 31(1F) 个 byte 的那个 pubkey. 知道了 pubkey 之后慢慢往回找看看这些 byte 是从哪里被载入到内存的,然后把它们替换成你自己的 pubkey 就行了。祝替换愉快 。
最后于 2018-10-18 19:16 被厉害了我的谁编辑 ,原因:
雪    币: 176
活跃值: 活跃值 (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bruce梨 活跃值 2018-10-19 04:05
7
0
厉害了我的谁 在 call l_pubkey_verify 处断下,查看栈所指向的内存里的 pubkey, 你的&n ...
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-6-9 08:56
8
0
厉害了我的谁 "修改pubkey verify返回值的方法,会造成某些软件变得很不稳定。" 修改 l_pubkey_verify 函数返回值的方法没有问题,胡乱修改或乱改一通才是导致软件不 ...
厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢!
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2020-6-9 12:49
9
0
tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢!

首先你必需确定你的程序有没有使用 ECC, 如果没有那就找 Encryption Seed 编译 lmcrypt.exe 然后生成 license.
如果有就 patch l_pubkey_Verify 或替换 pubkey. 找 l_pubkey_Verify 的方法跟 Windows 的一样, 你可以参考下面

这个帖里提供的方法. 当然还有其他的方法如通过寻找特征码来确认 l_pubkey_Verify 函数.


https://bbs.pediy.com/thread-248200.htm

最后于 2020-6-9 12:51 被厉害了我的谁编辑 ,原因:
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-6-11 20:55
10
0
厉害了我的谁 tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢! 首先你 ...
感谢大神 回复!这么快就有反馈了!现在已经试着下载了ida pro反汇编来看,反汇编成C后结合日志查看运行逻辑。
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-6-11 21:09
11
0
厉害了我的谁 tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢! 首先你 ...
再请教一个flexnet的问题。从论坛资料了解到,破解的思路是patch厂家daemon程序 l_pubkey_Verify()。license管理程序lmadmin(估计就是原来的lmgrd)不需要改吧?因为我尝试修改厂家daemon程序的二进制文件后,lmadmin程序提示找不到文件了。猜测lmadmin对厂家daemon做了文件校验。准确把daemon也反汇编看看。请问这样操作是否可以?打扰您了。
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-6-11 21:11
12
0
补充license文件中sign是60位的,应该就是用了ECC。
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2020-6-12 00:09
13
1

一般只需 patch daemon 和厂家其他被 flexnet 保护的文件(exe 或 dll). 可以用 Detect It Easy(Die) 或 FlexLMsearch 确认哪个是被 flexnet 保护的文件.

雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-6-15 14:48
14
0
谢谢厉害老大!
雪    币: 223
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_ray_724 活跃值 2020-7-14 23:51
15
0
厉害了我的谁 一般只需 patch daemon 和厂家其他被 flexnet 保护的文件(exe 或 dll). 可以用 Detect It Easy(Die) 或 FlexLMsearch 确认哪个是被 fle ...
我下载的Die跟这个界面差别很大,无法实现您说的扫描指定目录下哪些是被FlexNet保护的文件,求指教
雪    币: 86
活跃值: 活跃值 (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hzda00 活跃值 2020-7-16 17:17
16
0
厉害了我的谁 tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢! 首先你 ...
弱弱问一句如何确认程序有没有使用 ECC
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-7-18 08:58
17
0
hzda00 弱弱问一句如何确认程序有没有使用 ECC[em_78]
论坛里说,license文件中sign大于16位的(12位?),就是用了ECC。
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-7-18 09:11
18
0
厉害了我的谁 tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢! 首先你 ...
非常感谢厉害老大!目前程序已ok,换做license来玩玩。
1 程序有没有使用ECC是否根据sign位数来判断?
2 固定lm_seed 1-3,替换pubkey后,用空手剑客和tanker的工具确认都是对的,但是加载新制作的license不成功。请问是否是编译方法不对,还是我漏掉了什么操作?因为期间我有改过lm_code.h中添加en seed1 2,对生成的license中sign是没有影响的。si生成的pubkey和license中sign始终一样。
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-7-18 09:14
19
0
厉害了我的谁 tcy027 厉害了我的谁 ,请问一下,FlexNet v11.12是否也能用patch l_pubkey_Verify的方法。怎么找到这个函数,谢谢! 首先你 ...
补充  sign是60位,没有sign2。lm_code.h中设置的key保护是113bits
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2020-7-18 14:14
20
0
tcy027 非常感谢厉害老大!目前程序已ok,换做license来玩玩。 1 程序有没有使用ECC是否根据sign位数来判断? 2 固定lm_seed 1-3,替换pubkey后,用空手剑客和tanker的工 ...

1. license 里如果有 SIGN= 或 SIGN2= 长度 60、84 或 120 位的就是有 ECC. 其他 SIGN= 或 SIGN2= 长度只有 12 位或者没有 SIGN= 或 SIGN2= 的都是没有 ECC 的. 这些在 Flexnet SDK 源码的注解里都有说得很清楚, 而且很多前辈们的教程里也有提到, 希望大家可以多搜搜论坛以免每次有新坛友提问这些问题时又得重复回答一遍. 

2. 对于 ECC, 如果固定了 lm_seed 1-3 那 pubkey.h 和 prikey.h 的值就会是固定的. 一旦你更改了任何一个 lmseed 1-3 的值那么 pubkey.h 和 prikey.h 的值就会不一样了. 这点你可以自己试验一下就知道了.

还有建议你换个程序替换 pubkey 试试, 如果还是遇到同样的问题那可能就是你的某个步骤出错了. 如果成功了就代表你的方法没有问题.

最后于 2020-7-18 15:42 被厉害了我的谁编辑 ,原因:
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-7-18 15:16
21
0
厉害了我的谁 tcy027 非常感谢厉害老大!目前程序已ok,换做license来玩玩。 1 程序有没有使用ECC是否根据sign位数来判断? 2 固定lm_seed 1- ...
谢谢厉害老大!感谢答疑!这么说只要替换pubkey是成功的,自己做license就可以了。我再替换pubkey试试。再次感谢!
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2020-7-18 23:15
22
0

我补充一下, 你可以按照我 6 楼回复楼主的方法在 call l_pubkey_verify 处断下, 查看栈所指向的内存里的 pubkey, 你的 license 长度是 60 位的所以对应的是第一组也就是 16(0x10) 个 byte 的那个 pubkey. 如果你全部的 byte 都更换正确的话那这里出现的 pubkey 就会和你的 pubkey 一样, 如果有一两个 byte 改错了也可以知道是哪个错了.


32 bit 程序

64 bit 程序

最后于 2020-7-18 23:57 被厉害了我的谁编辑 ,原因:
雪    币: 1280
活跃值: 活跃值 (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
厉害了我的谁 活跃值 2020-7-18 23:46
23
0
wx_ray_724 我下载的Die跟这个界面差别很大,无法实现您说的扫描指定目录下哪些是被FlexNet保护的文件,求指教

我用的是 DIE 2.05 版, 选择 Deep scan 选项然后把指定目录拖放到程序就可以了. 

最后于 2020-7-18 23:47 被厉害了我的谁编辑 ,原因:
雪    币: 943
活跃值: 活跃值 (177)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Kingh413 活跃值 2020-7-20 00:24
24
0
感谢大佬,说得很详细!
雪    币: 124
活跃值: 活跃值 (406)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
tcy027 活跃值 2020-7-21 16:44
25
0
厉害了我的谁 我补充一下, 你可以按照我 6 楼回复楼主的方法在 call l_pubkey_verify 处断下, 查看栈所指向的内存里的 pubkey, 你的 license 长度是 60 位的所以对应的是第一 ...
感谢厉害大佬,指点超级详细,我慢慢消化!
游客
登录 | 注册 方可回帖
返回