能力值:
( LV2,RANK:10 )
|
-
-
2 楼
需要啊,把生成器发上来吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
晕,我不知道有没有上传的权限.
呵呵,还好.原码我就不上传了,写得很乱.
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
楼主说说使用方法吧,谢小娥
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
你是说什么的使用方法?
那脚本只要在OD里面执行就可以了,会自动生成数据到C:\data.txt.
生成的文件里面有VENDER NAME, 加密的VENDERCODE. 和重新生成KEY5用的随机密码,最后是一段反汇编的源程序,里面就是Y5生成用的移位顺序.
有这些就可以生成VENDERCODE了.
不过只能对付没有ECC的....
那个KEYGEN可以做重新生成工作. 之前曾经看到脸说是自己做的MAKEKEY生成的LICENSE不能通过自己的(做MAKEKEY同时生成的DAEMON)的验证,我想原因可能是他们只生成了一对加密种子, 我这里生成的是2对加密种子,一对是用在MAKEKEY上的,一对是用在DAEMON上的(生成MAKEKEY的时候FLEXLM自动会处理,不用自己选择)
用导入文件的格式很简单,就是按data.txt的前面到key4为止, 后面是一行版本,如9.2B就写
902(9.0,B),再后面是上述文件里面的MAGIC4, 然后是移位顺序, *8,*4,*2,*1.
一个我试验的DAEMON撮的数据如下:
c:\data.txt:
prflexd
4
a1162d59
49209a94
6a93b3ec
d577e5b0
3f3d9d1f
945a9c32
9
39300020
302e
5059772
64286a4c
0
3
1
10
16
1f
adea8e72
4069a9ed
5d6b6335
b302987b
0
0
magic_4:
38115f7f
can't get turns directly,so just dump the asm-code:
0FBE45 D8
movsx eax,byte ptr ss:[ebp-28]
D1E0
shl eax,1
0FBE4D D9
movsx ecx,byte ptr ss:[ebp-27]
C1E1 03
shl ecx,3
0BC1
or eax,ecx
0FBE55 DA
movsx edx,byte ptr ss:[ebp-26]
0BC2
or eax,edx
0FBE4D DB
movsx ecx,byte ptr ss:[ebp-25]
C1E1 02
shl ecx,2
0BC1
or eax,ecx
8B55 FC
mov edx,dword ptr ss:[ebp-4]
*****************************
lmgenkey可以导入的文件
注意: 从prflexd开始,没有任何其他附加
*******************************
prflexd
a1162d59
49209a94
6a93b3ec
d577e5b0
3f3d9d1f
945a9c32
902
38115f7f
3142
ok
***************
生成的数据(保存到文件的)
\************************************************
* Vendor_Code for prflexd Ver:9.0C *
* re-generated with LMKEYGEN Wver:2.0 *
* Thu Jan 10 19:49:06 *
* _by tylon *
************************************************\
Uses file_in : prf.txt
#define VENDOR_NAME "prflexd"
#define ENCRYPTION_SEED1 0x568D25EB
#define ENCRYPTION_SEED2 0xBEBB9226
#define ENCRYPTION_SEED3 0x2F852D92
#define ENCRYPTION_SEED4 0xC7B39A5F
#define VENDOR_KEY1 0x0E49CF64
#define VENDOR_KEY2 0xB8CB932E
#define VENDOR_KEY3 0x53F3F782
#define VENDOR_KEY4 0xF080E2B2
#define VENDOR_KEY5 0x4773BA84
\***********************************\
#define CRO_KEY1 0x55C207A8
#define CRO_KEY2 0x9E4587B8
\***********************************\
\******** for review only ********\
kcksum[0] =: 0x37FFBBFE
kcksum[1] =: 0x04008029
kcksum[2] =: 0x40020000
kcksum[3] =: 0x03EEA001
VNAME_CKS =: 0x03FE
EFA的数据库保存的就是上面的KCKSUM,呵呵,一个很直接的VENDERKEY
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
对了,需要补充一点:
上面生成的两对加密种子,KEY1/2和KEY3/4也许应该反过来,即:
#define ENCRYPTION_SEED1 0x2F852D92
#define ENCRYPTION_SEED2 0xC7B39A5F
#define ENCRYPTION_SEED3 0x568D25EB
#define ENCRYPTION_SEED4 0xBEBB9226
由于很久没有做过LICENSE了,也没有8.1以上的SDK,所以懒得再试.
呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
非常感谢,这个先收藏了,好好学学,在此感谢atylon!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
确实不错,谢谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
對於magic 4這資料是什麼,不清楚,樓主可否提供相關資料以助了解,謝謝
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
你所抓的只是VERNDOR CODE,还没有VERDOR JOB,所以没法判断你的ENSEED是否正确。不过可以肯定的是你的VENDOR_KEY5和CROKEY是错误的,从你的结构可以算出:
#define VENDOR_NAME "prflexd"
#define VENDOR_KEY1 0x0E49CF64
#define VENDOR_KEY2 0xB8CB932E
#define VENDOR_KEY3 0x53F3F782
#define VENDOR_KEY4 0xF080E2B2
#define VENDOR_KEY5 0x3e7bb2fd
#define CRO_KEY1 0x05059772
#define CRO_KEY2 0x64286a4c
ENSEED3/4是ECC里面用的,非ECC是没有的,在7.2里面可以算,但是很需要时间,在8.1及以后的版本是不能算的,它不存在DEAMON里面。而ECC的逆运算,,,,呵呵,大家都知道了。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
呵呵,遇到高手了.
不过10楼的这位老兄你看清了吗?抓到的内容里面有JOB的随机MAGIC,以及移位顺序.这就够了.
实际上所谓的JOB动态生成KEY5就是逆序计算VENDER名字,然后按移位顺序重新组合后与上述随机MAGICXOR. 每次重新生成DAEMON的时候这个随机MAGIC都不同,不过生成了就不变了.
我不知道10楼的老兄是怎么算KEY5的,如果你没有JOB的话?
CRO key是明码存放的.抓出来就是.
实际上没必要自己去生成(我做这个的时候是8.0刚刚出来的时候,还很少有见到CRO KEY的)
所以当时就加了一个根据VENDER名自动计算的CRO.
呵呵,只要生成的时候能通过就行.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
关于这里的MAGIC4是我自己命名的,由于要跟(我自己)早期东西兼容,所以一直没有与其他人发表的进行过统一.呵呵
具体地说,这MAGIC4就是在6.1以后的版本中lm_new.c文件中的l_36new_buf里面出现的那个随机数. 呵呵,把这个文件帖上来太大了.为清楚起见,把我源程序的定义帖在这里,看了就在于清楚了.
BOOL tl_setmagic(unsigned long mag[5], int flmver, unsigned long m4)
{
switch (flmver)
{
case(3):
case(4):
mag[0] = 0xa8f38730;
mag[2] = 0xcf53fa74;
break;
case(5): // version 5, 5.12
mag[0] = 0xa8f38730;
mag[2] = 0x58A340F2;
break;
case(6): // version 6.0, 6.1
mag[0] = 0xa8f38730;
mag[2] = 0x1504C935;
mag[3] = m4 ;
break;
case(7): // version 7.0
mag[0] = 0x7648b98e ; // normal magic1
mag[1] = 0xd0e83b58 ; // for CROkey_cksum with CRO != 0
mag[2] = 0x788f71d2 ; // for vendor_cksum along with magic2
mag[3] = m4 ;
mag[4] = 0x08bc0ef8 ; // for key5 re_generation
break;
case(8): // version 8.0
mag[0] = 0x6f7330b8
mag[1] = 0x2a82355a
mag[2] = 0x3cde3ebf
mag[3] = m4
mag[4] = 0x08bc0ef8 ; // same as V7
break;
case(9): // version 9.0 not valid yet
mag[0] = 0x6f7330b8
mag[1] = 0xf023fe01
mag[2] = 0x72346b53
mag[3] = m4
mag[4] = 0x08bc0ef8 ; // same as V7
break;
case(10): // version 10.0 not valid yet
mag[0] = 0x6f7330b8
mag[1] = 0x1548463a
mag[2] = 0x5332322f
mag[3] = m4
mag[4] = 0x08bc0ef8 ; // same as V7
break;
case(11): // version 11.0 not valid yet
mag[0] = 0x6f7330b8 ; // normal magic1
mag[1] = 0x1BEC6235 ; // for CROkey_cksum with CRO != 0
mag[2] = 0x0EBE86632 ; // for vendor_cksum along with magic2
mag[3] = m4 ;
mag[4] = 0x08bc0ef8 ; // for key5 re_generation; same as V7
break;
default:
printf ("Unknown version.\n");
exit(1);
}
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
确实不错,谢谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
这个东西具体如何使用?能说下吗?我是初者!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
仔细看了一下,你抓的好象是lc_init的数据,也就是加密的verdorcode,你能从加密的verdorcode还原为真正的verdorcode,看来不错,你的算法也跟网上流传的不同。
KEY5它与KEY1---KEY4及VERDOR NAME有关,还跟GLSEED这个参数有关,具体你可以参考前辈的程序。
CROKEY是用在ECC里面的CKSUM,只要你CKSUM!=0,CROKEY就可以编译通过,但是与具体的ECC是不同的,照你这么说随便生成一对就可以了,那还不如全部设为FFFFFFFF,事实上CROKEY是存在于verdorcode中。所以,不需要你随便生成。如果非要自己生成,那也是有算法的,可以参考NB的原程序,如果你逆向很厉害的话,还可以反编译LONG大虾的lmkg.exe。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
呵呵. CROKEY当然不是随便生成的. 是根据DAEMON中的ECC验证码逆算出来的. 这些码至少在早期的DAEMON中是静态存贮的. 当初做这个把时候查过V7/V8的,验算CROKEY的码都是一样的,因此就可以自己生成了. V9以后的我没有去查过,因为说实在的,CROKEY没用,呵呵.
至于本人的KEY5和加密SEED算法, 实际上确实只需要抓到INIT的就够了,甚至只要抓到静态的明码(有些DAEMON至今还有,呵呵,比如CADENCE10.8)
因此,可以说,用本人的生成器,根本不需要去抓你们说的那个JOB数据!只要在LC_INIT抓到 VENDERCODE(是经过XOR的,不需要真正的,呵呵), 我用的MAGIC4和移位顺序都可以静态反汇编得到.支部跟踪它只是省掉了人工找的麻烦. 呵呵,其实人工找也很简单,只要找到一大堆CALL TIME的那个SUB_ROUTING就行了. MAGIC4和移位顺序都在那儿.你也可以自己跟跟看看,程序是怎么算的.
至于我的算法跟网上流传的不同,那是因为我做这个把时候V6.1刚刚出来,CRACKZ都还没有开始有FLEXLM的帖,只有FRAVIE(呵呵,记不清了)有讨论.所以各自的方法会不同,呵呵.我自己觉得,我的这种抓数据比你们抓JOB要简单,要抓JOB至少需要一个LICENSE,而我这种抓法不需要,呵呵.
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
喔瑟,原来是位老前辈啊!!!致敬。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
hi, atylon,
经检验,你的工具也可以用在V10和V11版本上。
01471150 55 push ebp
01471151 8BEC mov ebp, esp
01471153 83EC 2C sub esp, 2C
01471156 C745 FC 729A192>mov dword ptr [ebp-4], 26199A72 <------你的magic4,EFA里面叫UNIQUE
0147115D C745 F8 0300000>mov dword ptr [ebp-8], 3
01471164 8B45 0C mov eax, dword ptr [ebp+C]
014714B5 0FBE55 D8 movsx edx, byte ptr [ebp-28]
014714B9 C1E2 03 shl edx, 3 〈--------你的-4值,EFA叫order 0=3
014714BC 0FBE45 D9 movsx eax, byte ptr [ebp-27]
014714C0 D1E0 shl eax, 1 <--------order1=1(your -3)
014714C2 0BD0 or edx, eax
014714C4 0FBE4D DA movsx ecx, byte ptr [ebp-26]
014714C8 C1E1 02 shl ecx, 2 <--------order2=2 (your-2)
014714CB 0BD1 or edx, ecx
014714CD 0FBE45 DB movsx eax, byte ptr [ebp-25]
014714D1 0BD0 or edx, eax <-------order3=0(your -1)
014714D3 8B4D D4 mov ecx, dword ptr [ebp-2C]
verdor strurect:
00000004
5B203EAE
D3EF11C4
E1615216
D4232200
6C4D616A
2AB6D87F
0004000B
31310000
0000302E
2FA52EA7
CC6D223F
00000000
00000002
00000002
00000000
00000016
最后算得:
#define VENDOR_NAME "ALDEC"
#define ENCRYPTION_SEED1 0x09379235 〈——————————????
#define ENCRYPTION_SEED2 0x81F8BD5F 〈------------------------????
#define ENCRYPTION_SEED3 0x4E3F9A72 〈---------------其实就是SEED1
#define ENCRYPTION_SEED4 0xC6F0B518 〈--------------其实就是SEED2
#define VENDOR_KEY1 0xAC9910AF
#define VENDOR_KEY2 0x9F9F2CBC
#define VENDOR_KEY3 0x64BD6FD1
#define VENDOR_KEY4 0x674E9787
#define VENDOR_KEY5 0x6E357D93 〈------错误的KEY5值
\***********************************\
#define CRO_KEY1 0x62011861
#define CRO_KEY2 0xCF26AB66
\***********************************\
\******** for review only ********\
kcksum[0] =: 0x37FFBBFE
kcksum[1] =: 0x04000029
kcksum[2] =: 0x40020100
kcksum[3] =: 0x03EEA001
VNAME_CKS =: 0x02BD
有个问题:
#define ENCRYPTION_SEED1 0x09379235 〈——————————????
#define ENCRYPTION_SEED2 0x81F8BD5F 〈------------------------????
这个是你自己生成的吗???
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
版主我可以运行你的脚本也产生了 data.txt文件了 但是文件里面那段汇编是用来找移位循序的数吗?怎么运行它,来找移位数字?我的那段汇编如下:
0FBE45 D8
movsx eax,byte ptr ss:[ebp-28]
D1E0
shl eax,1
0FBE4D D9
movsx ecx,byte ptr ss:[ebp-27]
C1E1 03
shl ecx,3
0BC1
or eax,ecx
0FBE55 DA
movsx edx,byte ptr ss:[ebp-26]
0BC2
or eax,edx
0FBE4D DB
movsx ecx,byte ptr ss:[ebp-25]
C1E1 02
shl ecx,2
0BC1
or eax,ecx
8B55 FC
mov edx,dword ptr ss:[ebp-4]
怎么来弄呢?
请帮忙指点一下
|
能力值:
( LV8,RANK:130 )
|
-
-
20 楼
呃都是高手,小菜鸟我只能帮顶一下了,非常感谢前辈们提供这些工具,我们晚辈只能苦练基本功了
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
有一个软件(在附件中上传)flexlm 9.0 保护,总得不到正确的seed ,请大家帮一个忙,解一下
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
楼上的还在做TB的license啊?
Autokonline.exe是M3的应用程序。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
是的,原来的license已经过期了,无钱更换,你有吗,能否提供一个,seed能给吗,
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
楼主能否给出一个具体的使用方法?我在OD里面一使用就死机,并且针对不同软件死机的原因还不一样。我是入门者,请楼主多多指教。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
flexlm好深奥哈
|
|
|