首页
社区
课程
招聘
[原创]制作Flexlm license总结!
发表于: 2005-12-15 17:45 189670

[原创]制作Flexlm license总结!

2005-12-15 17:45
189670
收藏
免费 10
支持
分享
最新回复 (111)
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
26
最初由 Robocop 发布
laoqian老大,您什么时候上下qq阿?我有些问题想单线咨询一下你哦,可以吗?

你可以在我的QQ上留言,如果我在我会回答,呵呵,我一般是隐身或者不在线!

建议看看一下,我只是一知半解,需要e文好的翻译一下!
from CrackZ:
Whats in a SIGN?

The tutorial above describes a mechanism by which we can patch the FLEXlm licensing layer to use the license key checkout (this is the oldest and simplest of the FLEXlm validation methods and was chosen purely for simplicity). The basic SIGN attribute was added by Globetrotter at around v7.x (it has only 12 chars) and offers merely an improved algorithm (perhaps more resistance to brute forcing) and better seed hiding, these are about the only 'enhancements' if one wishes to call them that.

These days a lot of customers have switched to using the CRO or TRO (counterfeit/tamper resistant options), really the same thing under a new name. This offers customers the ability to generate the newest style ECC SIGN licenses with strings starting at 58 chars, as far as I know and can verify there have been no successful attacks against ECC FLEXlm which enables either complete recovery of the private key or the LM_SEED's (I do not rule out however that there is enough processing power somewhere to recover them).

The new SIGN length has resulted in most crackers choosing to patch _lm_pubkey_verify() and generating a SIGN= license using their own LM_SEED's. There is however an alternative approach which involves forcing the licensing layer to do the old style SIGN=12 chars checkout and it simply involves patching only the 2nd bad flag we found inside _l_n36_buf() (see above). We can then recover the encryption seeds as before and generate a license using either the SDK or Lmcryptgui available on this site. The patch works by simply telling the licensing layer not to get the address of _lm_pubkey_verify() which is checked shortly after _l_sg().

Another important thing to note, its easy to verify if your target will allow the old style SIGN= checkout, after _l_sg() set a breakpoint on the mangled seeds in the vendor code structure, if it hits the seeds are being recovered and you can generate the old style standard SIGN, if not, you'll need a patch; after a patch a breakpoint on the mangled seeds should hit, just prior to them being recovered.

这或许就是有些软件不第二次去那个call的原因! CRO or TRO
2005-12-20 09:54
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
不好意思啊 laoqian,你自从加了我,就么说过话,qq里好多人,不晓得哪个是你了,呵呵,你提醒一下,你第一个字是什么来着?对不起啊,
2005-12-20 22:22
0
雪    币: 1310
活跃值: (727)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
28
最初由 laoqian 发布
btw:87654321此处,在6.x版时,可以得到真seed,
参考文章“Ansoft Serenade v8.5 - Tutorial”

http://www.woodmann.com/crackz/Tutorials/Serenade.htm

代码:--------------------------------------------------------------------------------
I also remembered that the checks for the default seed codes (shipped with the SDK) was a good place to fish the correct

seeds, a simple disassembly search for '87654321' finds this code :-

:00429C4C CMP D, [EBP-34], 87654321 <-- Check for encryption_seed1.
:00429C53 JZ 00429C5E <-- Jump to Error.
:00429C55 CMP D, [EBP-30], 12345678 <-- Check for encryption_seed2.
:00429C5C JNZ 00429C85 <-- Good jump.
:00429C5E MOV EDI, FFFFFFA5 <-- Error Code (-91).

Routines inside Ser85.exe detect bpx type breakpoints and patching of key files, the checking code starts at 0040EFD3, here

you'll see the names of the files that are checked and the rather obvious 'PUSH 7' instructions which produce a cryptic error

message box asking you to call Ansoft for assistance. The files verified should give us a good idea where to look for other

parts of the protection, Ansoft's developers evidently tried (as is good policy) to identify possible points of attack. Using

bpmb style breakpoints we can quickly recover (what we think are valid) encryption_seed1 (0x7CB2B081) & encryption_seed2

(0x2DFE22B6).
.....

........



laoqian,你误解了吧,v6.1也不能直接获得的,作者后来也更正了。
http://www.woodmann.com/crackz/Tutorials/Serenade.htm#v8.5 correction
它们也是加密了的。
2005-12-26 23:27
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
29
呵呵,那就是我理解错了!因为我没有这样跟踪搞过6.x,我是用flexgen搞6.x和5.x的,那flexgen方法很简单――简直就是傻瓜相机一样简单!
2005-12-27 10:26
0
雪    币: 1310
活跃值: (727)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
30
最初由 laoqian 发布
呵呵,那就是我理解错了!因为我没有这样跟踪搞过6.x,我是用flexgen搞6.x和5.x的,那flexgen方法很简单――简直就是傻瓜相机一样简单!

flexgen使用懂了确实简单。不过还是要获得真seeds1,2才行,难道你没有真seeds也可搞定? (当然对比法验证方法除外)
2005-12-27 11:06
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
31
忘了说了是“flexgen+修改后的DLL”,修改后的dll可以自动找到seed的!如果不是dll的也只好跟踪了,不过我还没碰到过――很少破解了,呵呵!
2005-12-27 13:56
0
雪    币: 1310
活跃值: (727)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
32
修改后的DLL?=====>偶没有用过,如果方面,就说出来,让偶学习下。
另外,feature该如何全面确定其名称与版本?是否可以讨论下。
你文中说的
方法1,需要正版支持,利用正版、试用版的license确定确实是最方便的方法;
方法2也是比较好的方法,动态跟踪获得。
但是问题是:很多时候软件是分散检测feature有效性的,这时候就难以确定了。
laoqian,你说还有其它方法吗?
2005-12-28 14:02
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
33
1:修改后的DLL,请看看雪书第一版P342,有详细说明
2.可以搜索你找到的feature的名称,在附近一般会出现其他feature,至于版本我做了几个好像即使不一样也能通过!
动态跟踪应该能解决,只要你设好断点,然后把程序的所有功能斗是一遍,就会中断在那里看到
2005-12-28 15:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
关于版本号的问题,在sdk中说,只要保证feature行的版本号比当前软件要check的高,就应该没有问题的!!
   所以你可以将版本号设成很大!!比如说今年是2006,你如果设置成"2007.00" 之类的话,一般没有问题的.当然如果有问题的话,他会提醒你.我以前就碰到过,说"当前license文件的版本太高,不支持"(翻译过来好象是这意思,具体记不清楚了)
2006-1-5 13:09
0
雪    币: 233
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
在我学习之后,我拿了一个商业软件来试了一下,发现了Aveva公司的tribon软件的加密也用了FLexlm licese.寻找加密种子和楼主说的大致相同。非常感谢楼主。
2006-2-20 10:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
最初由 linhanshi 发布
的确不错!


好贴,顶.......
2006-3-7 22:51
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
37
传说有此文章之后,国内flexlm的软件被破掉无数,现在只剩下一些使用自定义检测的还在,呵呵。
2006-3-8 14:56
0
雪    币: 206
活跃值: (226)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
好文,学习中
2006-3-13 23:07
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
最初由 laoqian 发布
注:经过朋友提示,发现出现以上现象,基本上是软件使用了自定义检测函数来检测license文件,flexlm提供接口的!


laoqian能否介绍一下遇到这种情况怎么处理呢?
2006-4-6 22:21
0
雪    币: 241
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
l_sg这个函数在哪里找啊?
我的程序里面没有lmxx.dll的文件啊?
2006-5-30 01:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
收藏:-):-)
2006-5-30 21:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
有些软件的feature有很多很多,是一个一个做呢,还是能一次全做完?
2006-6-13 12:50
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
43
可以找齐了,一次制作!
当然如果你有试用版或正版的lic最好,那就省事了。
btw:
最近研究了一下cro,对爆破cro有了稍许体会,等适当时候再写续集!
2006-6-14 13:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
00433940    E8 95560000       call zendenc.00438FDA   ;这个call就是著名的所谓7648B98E标志call!后面要进去的!!!
00433945    83C4 0C           add esp,0C

第二次F9的时候没有执行标志call,程序到00433945    83C4 0C           add esp,0C停止了,请问这可能是什么原因?

这时第一次来到00439002  jz short loc_439027时它是要跳过去的,注意要跳就让他跳吧。

第二次F9应该在什么时候?跳过去就F9么?

请指教,谢谢。
2006-11-8 17:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
在我学习之后,我拿了一个商业软件来试了一下,发现了Aveva公司的tribon软件的加密也用了FLexlm licese.寻找加密种子和楼主说的大致相同。非常感谢楼主。

请问你是的是哪个版本的?和教程说的有什么差异阿?请指教,谢谢。
2006-11-8 17:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
makeyunbad :你用的TRIBON 是不是 M3?我下了一个是M3 用FLEXLM9.0加密的 我也想试试解密看看。但是不知道从哪个程序开始 。是那个 KCS.EXE吗?还是其他的。
2007-2-24 21:53
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
好呀!跟这些前辈学习,可省了好多时间。
2007-4-7 16:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
好东东,认真学习一下
2007-4-7 17:12
0
雪    币: 210
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
楼主利害。。PFPF。
2007-4-7 17:20
0
雪    币: 136
活跃值: (135)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
50
好像新的版本此方法都不好用了 五亿五千五百五十五万五千五百五十五
2007-4-7 17:52
0
游客
登录 | 注册 方可回帖
返回
//