首页
社区
课程
招聘
[求助]Flexlm11.5加的密,请高手帮看一下!
发表于: 2009-3-12 22:21 24968

[求助]Flexlm11.5加的密,请高手帮看一下!

2009-3-12 22:21
24968
Flexlm11.5加的密,看过很多高手写的贴子,对FLEXLM也有一此了解.

现在是种子找到了,可以生成12位的SIGN,但是我爆了客户端的_l_pubkey_verfiy后(在xxx.dll里),启动软件,还是显示不正确。怎么爆破_l_pubkey_verfiy不启作用呢?

难道ECC不在_l_pubkey_verfiy里了?

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

收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 2434
活跃值: (1427)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
你有給它 License 嗎?
2009-3-13 10:40
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
只调试daemon时需要带参数。 因为daemon不会调用license。
参数的写法参见坛子里的文章。
2009-3-13 10:40
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上说的极是,没有参数你调试啥呀?
你要是执行程序,它只会告诉你版本号不是。。。

P.S. 看了一下这个daemon,无法在_l_string_key里找明码seeds了,而且是ECC的,客户端必须打补丁。不知道客户端还有啥要求?vendor_string?
2009-3-13 10:54
0
雪    币: 503
活跃值: (4882)
能力值: ( 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不知道如何得到。。。
2009-3-13 23:37
0
雪    币: 503
活跃值: (4882)
能力值: ( 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"
2009-3-13 23:38
0
雪    币: 206
活跃值: (15)
能力值: ( 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
2009-3-14 09:00
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
给你个菜鸟级建议(因为我是菜鸟)
用lmcryptgui.exe 填入seed1 seed2 和版本号
可以生成一个 lmcrypt****.exe文件
把正确格式的license文件用鼠标拖动到 lmcrypt****上
就会生成可以使用的license文件
但是你的主程序是有ecc的
此时的license文件并不能使用
必须patch掉ecc才行 工具论坛里有
------------闲着没事的分割线------------------
以上方法只是为了做出license 要是想研究sdk的 就华丽的忽略好了
2009-3-14 17:38
0
雪    币: 503
活跃值: (4882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
请问版本是写11.5还是其它的?
2009-3-14 21:34
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
自己先看看书了。感觉你对FLEXLM没什么认识就急冲上阵。
flexlm LICENSE没有版本之分,只有ECC LICENSE, default license, pre-v7.1 (license key)license三种。
对于没有ECC的LICENSE,只要你的SEED对的,使用7.2以上SDK都可以做。
abdull的建议是好的!
2009-3-14 22:18
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
建议对flexlm加密有兴趣的人研究一下这个程序,竟然是common vendor daemon,内含了3个daemon的验证。
3套种子都不难找,但没有客户端,不知道采用简单的ECC破解是否仍然管用。
2009-3-15 01:00
0
雪    币: 503
活跃值: (4882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这是什么意思?
2009-3-15 16:33
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
如果不明白,为什么不搜一下flexlm的common vendor daemon看看呢?
2009-3-16 12:32
0
雪    币: 203
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
果然通过观察_l_pubkey_verfiy的调用看到了3套不同的公钥,_l_pubkey_verfiy爆破后,启动daemon后可通过log文件看到一些信息
2009-3-18 19:48
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
研究一下这个daemon还是非常有意义的啊!
2009-3-18 21:43
0
雪    币: 503
活跃值: (4882)
能力值: ( 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的关键部分贴一下吗.
2009-3-18 22:08
0
雪    币: 324
活跃值: (237)
能力值: ( 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
2009-3-19 09:55
0
雪    币: 324
活跃值: (237)
能力值: ( 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.
2009-3-19 09:56
0
雪    币: 503
活跃值: (4882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
你怎么你的IDA反汇编结果会显示_l_pubkey_verify呢?

请问可以给一份你的SIG文件给我吗?我用11.4做的SIG根本看不到_l_pubkey_verify。
2009-3-19 20:49
0
雪    币: 503
活跃值: (4882)
能力值: ( 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验证”,测试通过。

真的不知道是什么原因。。
2009-3-19 20:50
0
雪    币: 503
活跃值: (4882)
能力值: ( 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标志也行。
2009-3-19 22:27
0
雪    币: 503
活跃值: (4882)
能力值: ( 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才行呢?
2009-3-19 22:42
0
雪    币: 206
活跃值: (15)
能力值: ( 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!
2009-3-20 05:48
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
楼上的正解啊。。。

2009-3-20 10:18
0
雪    币: 503
活跃值: (4882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
上面这句话是不是,只要我将DAEMON和客户端的_l_pubkey_verify“爆破”了,
license里的SIGN=KEY或SIGN2=KEY的KEY是否正确,并不重要了,甚至可以说写成“SIGN2=78787878...."这样都可以通过验证

或者说:

我将DAEMON和客户端的_l_pubkey_verify“爆破”了以后,直接将原来正版的LICENSE里的网卡号改成本机的网卡号,一样也可以使用?
2009-3-20 14:02
0
游客
登录 | 注册 方可回帖
返回
//