首页
论坛
专栏
课程

[原创]【新年献礼】一招爆掉FlexLM签名验证

2018-12-28 15:01 9278

[原创]【新年献礼】一招爆掉FlexLM签名验证

2018-12-28 15:01
9278

       本人在帖子 https://bbs.pediy.com/thread-248200.htm 中提出了爆破高版本ECC的方法,有坛友觉得不易掌握。作为新年献礼,现提供一种超简单、无论是否含有ECC、适合目前能见到的几乎所有版本的爆破方法:)


        将要爆破的文件拖进IDA Pro;全局查找字符串“SIGN%s=”,共有两个,且在同一函数内; 找到该函数尾部的call语句,把call语句修改为“mov     eax, 1”;你就拥有了全世界:)


        只要伪license文件的格式正确,5字节的修改一定童叟无欺(加壳的除外)







2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!

最后于 2018-12-28 17:52 被yangmyron编辑 ,原因:
上传的附件:
最新回复 (25)
slan 1 2018-12-28 15:44
2
0
SIGN%s=
是这样吗?
yangmyron 2018-12-28 17:35
3
0
是的,搜索时最好带上双引号
最后于 2018-12-28 17:40 被yangmyron编辑 ,原因:
上传的附件:
xj无敌 2018-12-28 21:27
4
0
Vendor string checksum楼主遇到过吗?最近遇到一个搞不定
fawcgzmg 2018-12-30 23:02
5
0
看不懂,能否做个视频
张炜 2019-1-26 20:18
6
0
找到该函数尾部的call语句,这句话不是很明白,该函数尾部的call语句难道不是_security_check_cookie吗?

luzhmu 2019-1-26 21:09
7
0
差点一个字节搞定了
考拉 2019-1-28 12:22
8
0
有空试试看      
yangmyron 2019-1-31 09:15
9
0
张炜 找到该函数尾部的call语句,这句话不是很明白,该函数尾部的call语句难道不是_security_check_cookie吗?
是的,就是修改它!修改 “call    @__security_check_cookie@4 " (x86版)或“call    __security_check_cookie”(x64版)为“mov     eax, 1”
最后于 2019-2-1 11:17 被yangmyron编辑 ,原因:
yangmyron 2019-2-1 11:20
10
0
luzhmu 差点一个字节搞定了
嗯,可惜没找到合适的位置
carlitos 2019-2-5 20:28
11
0
patching this call the software should work with a fake license file?
killpy 2 2019-2-11 08:09
12
0
FlexLM签名是啥玩意 
lion张 2019-3-4 23:39
13
0
jackchentw 2019-3-8 23:57
14
0
請問vendor daemon要一起爆破嗎? 我的目標有一個DLL檔跟一個vendor daemon檔,我把vendor daemon用您的方式爆破後,使用lmtools做 server diags結果lmgrd debug log 出現 Invalid license key (inconsistent authentication code) 錯誤,這是甚麼問題呢? PS: 目標是使用flexlm 11.15


目前問題解決了一半"
daemon的部份,我把 l_pubkey_verify  patch掉,lmtools就可以得到正確的server_diags回應,所有features可以checkout
但是把主程式的dll照樣patch,卻反而使主程式一開起就閃閉。如果DLL不做patch則會出現找不到license 的錯誤。
DLL patch後,主程式視窗會出現然 後立刻關閉,沒有錯誤訊息,目前正在解決這個問題,或許是case 46的部份還是需要patch 也可能。

我自己搞定了。這個目標是用flexlm 11.15, vendor daemon與主程式附帶的一個DLL檔需要爆破。
爆破只要用到樓主上面的方法,再加上之前另一篇文章提到的l_pubkey_verify 兩處爆破即可。
但是我這個目標的主要執行檔對DLL檔有做HASH防止竄改,所以又追蹤了主程式把檢查HASH的地方爆破,可是這樣改完居然還是不行,最後進一步追蹤才發現主程式針對license file中的feature version必須是一個特定值 1.0,我原本用11.4結果不行,這個保護很婊,完全沒有任何錯誤訊息,加上我手邊沒有既有的license.dat, 只能從逆向工程中去一步一步找尋feature name,但是沒想到還是敗在version number, 還好有追出來。
最后于 2019-3-9 19:00 被jackchentw编辑 ,原因: 補充說明
nmtr 2019-4-6 19:39
15
0
谢谢,初步验证成功,目标程序版本11.14,32位。 
hrfhrf 2019-5-23 22:45
16
0
很好,膜拜,期待更好的作品
周癫 2019-5-28 10:45
17
0
确实可行
tkschip 2019-5-30 17:16
18
0
yangmyron 张炜 找到该函数尾部的call语句,这句话不是很明白,该函数尾部的call语句难道不是_security_check_cookie吗? 是的,就 ...
 大侠,我在用这个方法在linux 64的daemon找不到此特征,11.14
huzuyi 2019-7-15 23:32
19
0

linux下面,可以将函数返回前的xor eax, eax指令改成nop,即31 c0改为90 90



修改前:



修改后:


另外这里或上的值最好是由8改为1,参考源码中L_CONF_FL_VERIFIED define的值是1,


最后于 2019-7-15 23:33 被huzuyi编辑 ,原因:
zwpcloudy 2019-7-16 13:13
20
0
@huzuyi  谢谢,用您的方法在Linux下确实可以用,但有个cvd类型的出现vendor端可以启动license文件,客户端软件能check license,但提示License error.
矽阳 2019-8-18 09:46
21
0
zwpcloudy @huzuyi 谢谢,用您的方法在Linux下确实可以用,但有个cvd类型的出现vendor端可以启动license文件,客户端软件能check license,但提示License error.
还有其它校验
mb_nxxnhzzc 2019-12-14 00:53
22
0
jackchentw 請問vendor daemon要一起爆破嗎? 我的目標有一個DLL檔跟一個vendor daemon檔,我把vendor dae ...
请教下具体流程,我也遇到了一样的问题。能否告知具体的DLL爆破方法,十分感谢。
istigatore 2019-12-16 03:30
23
0
upload the vendor somewhere.. MEGA is prefered... With SIGN & SIGN2 only way is patch or inject your pubkeys...
Ames_Bond 2020-1-20 10:30
24
0
使用论坛扫地僧们的方法全部试过了,ECC也patch了;还是有其他验证。搞不定了...不知大家有遇到过相同的问题吗?可以确定的是,license的格式是没有问题的,用的正版license改、加了几个字节而已。




已解决!!!


最后于 2020-1-21 10:57 被Ames_Bond编辑 ,原因:
Ames_Bond 2020-1-20 11:30
25
0
再更新一件神奇的事情,把安装目录下涉及到Flexlm的dll,jar文件删除后使用正版license启动,依然可以正常使用。软件启动正常,license Checkout正常。可以看到版本信息,授权信息等。

已解决!!!


最后于 2020-1-21 10:39 被Ames_Bond编辑 ,原因:
phoenixson 2020-2-14 15:03
26
0
请问大家是怎么解决这个问题的,利用huzuyi 修改xor  eax,eax的方法在实际应用时还是会报错误,根据楼主所说的方式也仍然会check error
最后于 2020-2-14 15:04 被phoenixson编辑 ,原因:
游客
登录 | 注册 方可回帖
返回