首页
社区
课程
招聘
[原创]针对FlexLM V11.11以上版本的ECC Patch方法
发表于: 2018-12-4 17:07 32523

[原创]针对FlexLM V11.11以上版本的ECC Patch方法

2018-12-4 17:07
32523

       在本论坛里看到部分朋友对FlexLM V11.11以上版本的ECC Patch的方法和步骤感到困惑,认为老方法可能不好使了。通过我的研究发现V11.11以上版本需要Patch两个地方才能达到任意许可都不需要验证的效果。第一个地方大神们早就给出了方法,就是Patch函数l_pubkey_verify的返回值;第二个地方有部分坛友提到,但没有总结出好的定位办法。我就不谈原理,直接把两个Patch地址的定位方法做一总结,与大家分享!


工具材料:IDA Pro V7.0 (含插件Keypatch), UltraEdit

参考资料:各位大神在本论坛的神贴,不再一一列举


第一个地方:

(Patch函数l_pubkey_verify的返回值, 全文参考附件文档)


第二个地方:

1) 在IDA中查找字符串“case 46“,一般会找到5个左右。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-12-4 17:11 被yangmyron编辑 ,原因:
上传的附件:
收藏
免费 11
支持
分享
最新回复 (61)
雪    币: 8911
活跃值: (5136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
2
收藏,mark,学习,谢谢楼主提供方法
2018-12-4 19:40
0
雪    币: 1250
活跃值: (3550)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢楼主提供方法
2018-12-4 20:34
0
雪    币: 4605
活跃值: (4527)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼主分享!
2018-12-4 21:46
0
雪    币: 12332
活跃值: (5103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

多谢楼主分享哟
2018-12-4 22:01
0
雪    币: 276
活跃值: (167)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
目前我遇到的ECC只需要patch一个地方就行了,LZ这个方法等会试下
2018-12-5 09:29
0
雪    币: 26245
活跃值: (63297)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
7
2018-12-10 09:38
0
雪    币: 298
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主是说以下这个吗?
2018-12-12 15:54
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
javacafe 楼主是说以下这个吗?
感觉不是!你可以用Graph View的形式看一下,必须是附图中的形式,红框内对应Case46和Case47的位置。
上传的附件:
2018-12-13 13:17
1
雪    币: 136
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
thanks yangmyron, 
- with this system of patching is not needed license file?
- could be needed to patch several files (exe or dll)?
2018-12-18 00:31
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
carlitos thanks yangmyron, - with this system of patching is not needed license file? - could be needed to ...
1) Still need fake license file
2)   Should patch every files (include dll and exe) with flexlm ecc
2018-12-20 15:27
1
雪    币: 136
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
thanks again yangmyron, your papers are the clearest one for people without experience in reversing
new question: the fake license file has to be prepared with lmcrypt (seeds, etc) or could be one old. In the last case: what happens with the date (if expired), server, hostid, feature versions...etc in the old license file?, how to modify?
Could you please prepare a paper to complete/finish the explanation of your previous paper 针对FlexLM V11.11以上版本的ECC Pacth方法.pdf in order to have the total sequence (patching + license)?
thanks again for your useful work and more important to share it.

2018-12-20 20:18
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
carlitos thanks again yangmyron, your papers are the clearest one for people without experience in reversing ...
1)No lmcrypt need for fake license file ( you can change server to this_host, hostid to any and feature versions to bigger numbers and so on)
2)  Your fake license file should be legal in format
2019-2-1 11:27
1
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
14
这是老外在提问吗
2019-2-11 08:57
0
雪    币: 232
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
多谢楼主分享,好好学习一下
2019-2-14 11:36
0
雪    币: 236
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
“5)利用IDA的Production File生成dif文件,用UltraEdit修改相应的字节值即完成Pacher。”
生成dif文件后,怎么修改?请高手帮忙回答
2019-5-15 15:19
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
用UltraEdit打开原文件,用二进制(Binary)方式查看,找到DIF文件指明的字节位置,修改相应的字节内容后保存即可
2019-5-20 12:27
1
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18

对IDA不是很熟,按照附件的pdf手册,第一个地方: 字符串“Error 9:”是找到了,但按F5键如下所示,出现不了伪代码,请大神指导一下,谢谢。

还有附件的两个exe文件是不是还没有按照手册修改过的???

2019-5-22 06:08
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
mb_aksiscbl 对IDA不是很熟,按照附件的pdf手册,第一个地方: 字符串“Error 9:”是找到了,但按F5键如下所示,出现不了伪代码,请大神指导一下,谢谢。还有附件的两个exe文件是不是还没有按照手册修改 ...
你已经看到伪代码了,sb_end函数正好被你截图的警告框挡住了,只露出一个30   接着就是全局搜索这个 “sub_XXXXXX30"了, 找到”mov dword ...."
2019-5-22 13:28
0
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
我看pdf里面给的这个代码很清晰,看起来也很容易理解,请问一下你这个代码是怎么来的?  
  ret = sb_end(global_data);   if (ret != SB_SUCCESS)    {     fprintf(stderr, "Error 9: ");     goto exit_seed;   } /*此处是关键的识别点,往上可找到 sb_end*/   if (!(fp = fopen("lmseed.dat", "w")))     fprintf(stderr, "Can't open lmseed.dat");   else   {     fprintf(fp,    "\ Once set, the values for LM_SEED1-3 must be kept secret \n\
and *never* change.\n\n\ #define LM_SEED1 0x%08x\n\ #define LM_SEED2 0x%08x\n\ #define LM_SEED3 0x%08x\n", seed1, seed2, seed3);     fclose(fp);   }
2019-5-23 08:55
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
mb_aksiscbl 我看pdf里面给的这个代码很清晰,看起来也很容易理解,请问一下你这个代码是怎么来的?    ret = sb_end(global_data);  ...
这是早年版本泄露的源码
2019-5-23 13:48
0
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
yangmyron 这是早年版本泄露的源码
谢谢!已参照pdf文件修改成功,后台守护进程也能启动起来,但我对LICENSE文件做了部分修改,导致license文件的sign校验通不过,实际使用的时候由于程序自身可能还存在校验,在程序端一直报license文件被串改,无法获取授权证书,不知道有没有办法直接破解license文件,修改license文件后重新生成sign串?
2019-5-23 16:40
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
mb_aksiscbl 谢谢!已参照pdf文件修改成功,后台守护进程也能启动起来,但我对LICENSE文件做了部分修改,导致license文件的sign校验通不过,实际使用的时候由于程序自身可能还存在校验,在程序端一直报li ...
程序端的文件也要做同样的修改
2019-5-24 17:45
0
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
yangmyron 程序端的文件也要做同样的修改
有办法重新生成License吗?
2019-5-24 21:01
0
雪    币: 6116
活跃值: (6756)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
25
mb_aksiscbl 有办法重新生成License吗?
ECC都Patch掉了,找到EN_SEED1和EN_SEED2不就可以了嘛
2019-5-27 12:55
1
游客
登录 | 注册 方可回帖
返回
//