能力值:
( LV2,RANK:10 )
|
-
-
4 楼
是Flexlm 9.0, 无 ecc,提供的license 有效,但很特殊。没有HOSTID=?。虽然用下面的两种方法均可找到种子。但是在制作种子时,如果没有HOSTID不能生成license。加了HOSTID可以生成license,但license不能工作。所以改用另外一种方法,就是让vendor daemon 为我们计算license。具体如下:记住是没有HOSTID的license。
:00425332 83BD8CFEFFFF00 cmp dword ptr [ebp+FFFFFE8C], 00000000
:00425339 742A je 00425365
:0042533B 8B8578FEFFFF mov eax, dword ptr [ebp+FFFFFE78]
:00425341 33C9 xor ecx, ecx
:00425343 8A88C08F4D00 mov cl, byte ptr [eax+004D8FC0]
:00425349 51 push ecx
:0042534A 8B9578FEFFFF mov edx, dword ptr [ebp+FFFFFE78]
:00425350 52 push edx
:00425351 8D8530FEFFFF lea eax, dword ptr [ebp+FFFFFE30]
:00425357 50 push eax
:00425358 8B4D08 mov ecx, dword ptr [ebp+08]
:0042535B 51 push ecx
:0042535C FF958CFEFFFF call dword ptr [ebp+FFFFFE8C]
:00425362 83C410 add esp, 00000010
:00425365 8B9530FEFFFF mov edx, dword ptr [ebp+FFFFFE30]
:0042536B 81E2FF000000 and edx, 000000FF
:00425371 8B8578FEFFFF mov eax, dword ptr [ebp+FFFFFE78]
:00425377 33C9 xor ecx, ecx
:00425379 8A88C08F4D00 mov cl, byte ptr [eax+004D8FC0] ;在004D8FC0地址处是SIGN=的密码,一个特征对应一个密码,抄下来写到license文件里即可。
:0042537F 3BD1 cmp edx, ecx ;设置断点,正确的中断6次数,不正确的中断1次数
:00425381 7404 je 00425387
:00425383 33C0 xor eax, eax
:00425385 EB26 jmp 004253AD
:00425387 E9DDFEFFFF jmp 00425269
下面确定种子的两种方法,但对这个例子不能生成正确的license。可能是有crypt filter的缘故。
Method 1:
:00424D26 83BD74FEFFFF08 cmp dword ptr [ebp+FFFFFE74], 00000008 ;break point
:00424D2D 7D2B jge 00424D5A
:00424D2F 8B55F4 mov edx, dword ptr [ebp-0C]
:00424D32 039574FEFFFF add edx, dword ptr [ebp+FFFFFE74]
:00424D38 33C0 xor eax, eax
:00424D3A 8A02 mov al, byte ptr [edx]
:00424D3C 8B8D74FEFFFF mov ecx, dword ptr [ebp+FFFFFE74]
:00424D42 33D2 xor edx, edx
:00424D44 8A91C08F4D00 mov dl, byte ptr [ecx+004D8FC0]
:00424D4A 33C2 xor eax, edx
:00424D4C 8B8D74FEFFFF mov ecx, dword ptr [ebp+FFFFFE74]
:00424D52 8881C08F4D00 mov byte ptr [ecx+004D8FC0], al
:00424D58 EBBD jmp 00424D17
:00424D5A 83BD78FEFFFF00 cmp dword ptr [ebp+FFFFFE78], 00000000
:00424D61 0F85EC030000 jne 00425153 ;no jump
:00424D67 83BD8CFEFFFF00 cmp dword ptr [ebp+FFFFFE8C], 00000000
:00424D6E 0F85E4020000 jne 00425058 ;no jump
:00424D74 837DFC00 cmp dword ptr [ebp-04], 00000000
:00424D78 0F85DA020000 jne 00425058 ;no jump
:00424D7E 8B5508 mov edx, dword ptr [ebp+08]
:00424D81 8B82FC030000 mov eax, dword ptr [edx+000003FC]
:00424D87 2500001000 and eax, 00100000
:00424D8C 85C0 test eax, eax
:00424D8E 0F84C4020000 je 00425058 ;no jump
:00424D94 C745F0C08F4D00 mov [ebp-10], 004D8FC0
:00424D9B 8B4DF8 mov ecx, dword ptr [ebp-08]
:00424D9E C1E104 shl ecx, 04
...........
:00424E05 C1E318 shl ebx, 18
:00424E08 33C3 xor eax, ebx
:00424E0A 50 push eax
:00424E0B E86F060000 call 0042547F
:00424E10 83C404 add esp, 00000004 ;break point, eax=seed1=13465847
:00424E13 898544FEFFFF mov dword ptr [ebp+FFFFFE44], eax
:00424E19 8B9544FEFFFF mov edx, dword ptr [ebp+FFFFFE44]
:00424E1F 81E2FF000000 and edx, 000000FF
...........
:00424F61 C1E318 shl ebx, 18
:00424F64 33C3 xor eax, ebx
:00424F66 50 push eax
:00424F67 E813050000 call 0042547F
:00424F6C 83C404 add esp, 00000004 ;brreak point, eax=seed2=14255673
:00424F6F 898540FEFFFF mov dword ptr [ebp+FFFFFE40], eax
:00424F75 8B9540FEFFFF mov edx, dword ptr [ebp+FFFFFE40]
:00424F7B 81E2FF000000 and edx, 000000FF
...........
Method 2:
:0041FCB7 8D8D80FDFFFF lea ecx, dword ptr [ebp+FFFFFD80]
:0041FCBD 51 push ecx
:0041FCBE 8B5508 mov edx, dword ptr [ebp+08]
:0041FCC1 81C20C030000 add edx, 0000030C
:0041FCC7 52 push edx
:0041FCC8 8B4508 mov eax, dword ptr [ebp+08]
:0041FCCB 50 push eax
:0041FCCC E8051C0000 call 004218D6 ;6F7330B8 CALL
:0041FCD1 83C40C add esp, 0000000C ;BREAK POINT, ESP=JOB, ESP+4=VENDOR NAME,ESP+8=DATA[]
:0041FCD4 8B4D08 mov ecx, dword ptr [ebp+08]
:0041FCD7 83B91C05000000 cmp dword ptr [ecx+0000051C], 00000000
:0041FCDE 0F849F000000 je 0041FD83
:0041FCE4 8B550C mov edx, dword ptr [ebp+0C]
:0041FCE7 83BA4001000000 cmp dword ptr [edx+00000140], 00000000
:0041FCEE 0F858F000000 jne 0041FD83
:0041FCF4 C68539FDFFFF00 mov byte ptr [ebp+FFFFFD39], 00
:0041FCFB 8B4508 mov eax, dword ptr [ebp+08]
:0041FCFE 8B881C050000 mov ecx, dword ptr [eax+0000051C]
:0041FD04 83C130 add ecx, 00000030
:0041FD07 888D38FDFFFF mov byte ptr [ebp+FFFFFD38], cl
:0041FD0D 8D9538FDFFFF lea edx, dword ptr [ebp+FFFFFD38]
:0041FD13 52 push edx
ONE GROUP OF JOB AND DATA
ESP+0=JOB:
00 00 00 66
00 69 00 0B
4D 27 23 8D ;JOB+08
00 40 F6 96 ;JOB+0C
00 86 00 00 ;JOB+10
ESP+8=DATA[]:
00 00 00 04
13 D0 AE 0A ;DATA[0]
14 B3 93 3E ;DATA[1]
ESP+4=VENDOR NAME
Calculate seed using calcseed.exe
seed1=13465847
seed2=14255673
And then use lmcryptgui to build lmcryptPSELMD.exe to produce a license.
Done.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
to xzwlyx
我试了一下,如果license.dat采用以下格式
SERVER yourcomputername ANY 2080
DAEMMON vendor_name x:\xxx\xxx.exe
FEATURE feature_name vendor_name 10.00 permanent uncounted 123456654321 \
HOSTID=ANY
在3d4da1d6常数处找出的种子算出的license既可使用,如果采用原来的license格式就不会断于3d4da1d6常数处
再请教
"所以改用另外一种方法,就是让vendor daemon 为我们计算license。具体如下:记住是没有HOSTID的license。"这种方法,下断点的特征字符是什么
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
1)请问4楼主,如何作下面的判断,有什么特征没有?
00425377 33C9 xor ecx, ecx
:00425379 8A88C08F4D00 mov cl, byte ptr [eax+004D8FC0] ;在004D8FC0地址处是SIGN=的密码,一个特征对应一个密码,抄下来写到license文件里即可。
:0042537F 3BD1 cmp edx, ecx ;设置断点,正确的中断6次数,不正确的中断1次数
:00425381 7404 je 00425387
2)HOSTID的处理:计算sign的时候用"HOSTID=" ,最后用的license.dat可以不用HOSTID.
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我用的是4楼第二种方法,也就是laoqian的方法!
Method 2:
:0041FCD1 83C40C add esp,0000000C
;BREAK POINT, ESP=JOB, ESP+4=VENDOR NAME,ESP+8=DATA[]
这个地方停不下来!不知道是怎么回事?但是在主程序里面能停下来但是种子不对。郁闷!
难道是lic放的地方不对,我把lic和Vendor demo放到一块的?
|