能力值:
( LV4,RANK:50 )
|
-
-
2 楼
你有給它 License 嗎?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
只调试daemon时需要带参数。 因为daemon不会调用license。
参数的写法参见坛子里的文章。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
楼上说的极是,没有参数你调试啥呀?
你要是执行程序,它只会告诉你版本号不是。。。
P.S. 看了一下这个daemon,无法在_l_string_key里找明码seeds了,而且是ECC的,客户端必须打补丁。不知道客户端还有啥要求?vendor_string?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我用 OllyDBG.EXE加载,并带参数-l -c "c:\flexlm\license.dat"进行调试,
找到了正确的种子。然后用lmkg.exe(Flexlm vendor key generation 3.0) 选择版本version 11,再将找到的SEED1和SEED2填到lm_code.h里,再运行FLEXLM SDK 11.4里的GENLIC32.EXE,结果GENLIC32.EXE仍然无法启动,说参数错误,不知道是什么原因,还有那个LM_SEED3不知道如何得到。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
/* Version 11 keys */
#define VENDOR_KEY1 0x44a1d342
#define VENDOR_KEY2 0x5a02eb1b
#define VENDOR_KEY3 0x85a58d7b
#define VENDOR_KEY4 0xdce9d5ae
#define VENDOR_KEY5 0x14793ba9
#define TRL_KEY1 0x0f71fe46
#define TRL_KEY2 0xe70f8fd1
#define VENDOR_NAME "xxxgic"
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
GENLIC32.EXE是使用8.x的lib编译出来的,只能接受8.0的KEY,其他的均被视为无效。你可以:
1. lm_code.h里面使用V8的KEY即可。
2,非要V11.X的KEY的话,自己编译一个LMCRYPT即可(推荐使用此方法。)
另外指出你的几点错误:
1,LMSEED不是你找到的SEED, 你找到的SEED叫ENSEED。 LMSEED是有LMRAND1 -seed随机产生的。
2,你的目标是否需要ECC,不需要的话,lmcode.h的TRL_KEY是不需要的,只定义为0即可。同时不能#define LM_STRENGTH LM_STRENGTH_113BIT,只能#define LM_STRENGTH LM_STRENGTH_DEFAULT
同时加入#define en_SEED1 0x88092507
#define en_SEED2 0x62072833
如果你的文件是ECC的,就没不要自己做LICENSE了,因为到现在为止,还没人破解 flexlm ecc.
详情自己看看SDK里面的flexnet_licensing_end_user_guide.pdf和flexnet_program_guide.pdf
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
给你个菜鸟级建议(因为我是菜鸟)
用lmcryptgui.exe 填入seed1 seed2 和版本号
可以生成一个 lmcrypt****.exe文件
把正确格式的license文件用鼠标拖动到 lmcrypt****上
就会生成可以使用的license文件
但是你的主程序是有ecc的
此时的license文件并不能使用
必须patch掉ecc才行 工具论坛里有
------------闲着没事的分割线------------------
以上方法只是为了做出license 要是想研究sdk的 就华丽的忽略好了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
请问版本是写11.5还是其它的?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
自己先看看书了。感觉你对FLEXLM没什么认识就急冲上阵。
flexlm LICENSE没有版本之分,只有ECC LICENSE, default license, pre-v7.1 (license key)license三种。
对于没有ECC的LICENSE,只要你的SEED对的,使用7.2以上SDK都可以做。
abdull的建议是好的!
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
建议对flexlm加密有兴趣的人研究一下这个程序,竟然是common vendor daemon,内含了3个daemon的验证。
3套种子都不难找,但没有客户端,不知道采用简单的ECC破解是否仍然管用。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
这是什么意思?
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
如果不明白,为什么不搜一下flexlm的common vendor daemon看看呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
果然通过观察_l_pubkey_verfiy的调用看到了3套不同的公钥,_l_pubkey_verfiy爆破后,启动daemon后可通过log文件看到一些信息
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
研究一下这个daemon还是非常有意义的啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
怎么我用了Flexlm 11.4版lmgr.lib和lmgr_md.lib制作了sig文件后,再用
IDA反编辑,再Load前面制作的lmgr.sig和lmgr_md.sig后,怎么都找不到_l_pubkey_verfiy这个函数呢?
能将你的反编辑后关于_l_pubkey_verfiy的关键部分贴一下吗.
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
.text:0040BB88 cmp dword_5C24AC, 0
.text:0040BB8F jnz short loc_40BB9E
.text:0040BB91 mov ecx, [ebp+Dst]
.text:0040BB94 mov dword ptr [ecx+150h], offset _l_pubkey_verify
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
Update information about this common vendor daemon.
1, three vendor's daemon name and 'encrypted name' can be get inside _l_n36_buff route.
If common vendor daemon technology will be used?
.text:004AEDA7 cmp off_59B3E0, 0
.text:004AEDAE jz short loc_4AEDB6
.text:004AEDB0 call off_59B3E0_l_n36_buff
route entry for different daemons.
.text:004354E6 sub_4354E6 proc near ; CODE XREF: sub_4AED2F+81p
.text:004354E6 ; DATA XREF: .data:off_59B3E0o
.text:004354E6 mov eax, off_59C024
.text:004354EB and dword_5C570C, 0
.text:004354F2 mov dword_5C5700, eax
.text:004354F7 mov eax, off_59DD6C
.text:004354FC mov dword_5C5704, eax
.text:00435501 mov eax, off_59D24C
.text:00435506 mov dword_5C5708, eax
.text:0043550B mov dword_5C5800, offset dword_5C5700
.text:00435515 retn
.text:00435515 sub_4354E6 endp
2, three sets seeds can be reverted from _l_sg route with encrypted daemon name and their code and job.
No difference from normal vendor daemon.
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
你怎么你的IDA反汇编结果会显示_l_pubkey_verify呢?
请问可以给一份你的SIG文件给我吗?我用11.4做的SIG根本看不到_l_pubkey_verify。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
今天我自已根据9.2的SIG,对以前的9.2版本的一个软件用IDA和SIG文件,找到了9.2版的_l_pubkey_verify,再根据这个函数的特征,找到了本软件客户端的xxx.dll的_l_pubkey_verify,和你找到了地方完全一样。部分代码如下:
.textidx:102F4C20 55 push ebp
.textidx:102F4C21 8B EC mov ebp, esp
.textidx:102F4C23 81 EC F0 00 00 00 sub esp, 0F0h
.textidx:102F4C29 C7 45 B0 00 00 00 00 mov [ebp+var_50], 0
.textidx:102F4C30 8B 45 08 mov eax, [ebp+arg_0]
我将上面前二行的代码改为:
.textidx:004F7BF0 33C0 xor eax, 0
.textidx:004F7BF1 C3 retn
这样我就将客户端的_l_pubkey_verify 爆破了。。
可是我在客户端我用自已生成的license.dat ,运行还是不成功。
首先种子肯定是对的,license.dat 的格式及里面的feature也是正确的(因为我有正版的license.dat)
请问是什么原因呢?按里ECC已经去掉了。
我用自已生成的KEY+论坛里的一种去ECC标志位的方法是搞定了,客户端是可以运行了,功能测试也都正常,但去ECC标志位的方法好像不是在_l_pubkey_verify 里,那方法没有动_l_pubkey_verify 。
难道这个软件的ECC不在_l_pubkey_verify ?
我的LICENSE格式如下:
FEATURE VISIO telxxxxc 2009.0326 01-jan-2010 8 VENDOR_STRING="This \
license is only used for Study!" SIGN=DCF8E9BAE268
用33C0C3 patch_l_pubkey_verify ,不成功。
用“去FLEXLM/NET ECC标志,强行12位SIGN验证”,测试通过。
真的不知道是什么原因。。
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
你在下面的贴子里写到“patch掉两个flag标志也行”,我在论坛里找到一个PACH ECC FLAG的程序。。这个程序可以解telexxxic的客户端。。但PATCH _l_pubkey_verify()却不行。。
请问如何定位那两个FLAG啊?
http://bbs.pediy.com/showthread.php?t=80123&highlight=flexlm
没什么特殊的,找到ECC,然后patch掉应该可以正常使用。
_l_pubkey_verify
代码:
.text:00415B00 55 push ebp
.text:00415B01 8B EC mov ebp, esp
.text:00415B03 81 EC F0 00 00 00 sub esp, 0F0h
.text:00415B09 C7 45 B0 00 00 00 00 mov [ebp+var_50], 0
.text:00415B10 8B 45 08 mov eax, [ebp+arg_0]
.text:00415B13 8B 88 9C 01 00 00 mov ecx, [eax+19Ch]
.text:00415B19 8B 91 E8 1C 00 00 mov edx, [ecx+1CE8h]
.text:00415B1F 83 BA 60 05 00 00 00 cmp dword ptr [edx+560h], 0
.text:00415B26 74 1D jz short loc_415B45
或者patch掉两个flag标志也行。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
用33C0C3 patch_l_pubkey_verify ,是不是license中的SIGN的长度必须与实际长度一致呢?
我是用lmgrytgui生成的license,如下:
FEATURE VISIO telxxxxc 2009.0326 01-jan-2010 8 VENDOR_STRING="This \
license is only used for Study!" SIGN=DCF8E9BAE268
正版的license如下:
FEATURE UML-SQDE xxx 2009.0102 2-jan-2009 4 \
VENDOR_STRING=TT0-362148 SIGN2="02FE 558E 5B18 6062 604E 7202 \
E4D7 DBDF 1153 96BD 6C82 F7F2 311A 3762 02F9 0C51 368E F075 \
300A 336A A2BA 989A 75B3 3C4D 1B20 9602 0CD2 F4E9 6A43 A9DD"
用33C0C3 patch_l_pubkey_verify ,是不是就不能用lmcryptgui来生成12位SIGN的license,而必须用SDK编辑生成的lmcryt.exe来产生与正版license一样格式(SIGN长度)的license才行呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
patch_l_pubkey_verify,软件只检测SIGN或则SIGN2这个字符,不会检测SIGN KEY及内容。
很显然,你的软件是SIGN2, 所以你只要把SIGN改为SIGN2即可。
既然你的目标是有ECC的,就不需要什么lmcrypt了,不如直接修改你原来正版的LICENSE就可以了。
你的LICENSE是FLOATING 类型的,如果要ECC FIX的话,不但相关程序要PATCH, DEAMON也要PATCH, 否则,无法启动flexlm server!!!如果你的程序可以接受NODELOCK类型LICENSE的话,你最好使用NODELOCK类型LICENSE,这样,就不需要
启动flexlm server!
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
楼上的正解啊。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
上面这句话是不是,只要我将DAEMON和客户端的_l_pubkey_verify“爆破”了,
license里的SIGN=KEY或SIGN2=KEY的KEY是否正确,并不重要了,甚至可以说写成“SIGN2=78787878...."这样都可以通过验证
或者说:
我将DAEMON和客户端的_l_pubkey_verify“爆破”了以后,直接将原来正版的LICENSE里的网卡号改成本机的网卡号,一样也可以使用?
|
|
|