首页
社区
课程
招聘
制作AUTOcad2002中文版网络版的Flexlm license
发表于: 2004-11-4 17:29 27489

制作AUTOcad2002中文版网络版的Flexlm license

2004-11-4 17:29
27489

发信人:laoqian

时 间:2004-11-2
软件名称: AUTOcad2002中文网络版
软件类别:地球人都知道
软件介绍:地球人都知道 Flexlm7.1f加密
破解工具:ollydbg 1.10(FLY) ,w32Dasm_2002828_pll621,UltraEdit8.0,Flexlm7.1f SDK,calcseed,lmkg,lmutil等

破解目的:制作无限制使用license文件

通过这篇文章我们将向你介绍如何制作FlexLm的license,当然有些重复的我省略了

第一部分: 废话

这个软件上次爆破了,大家也用的很满意。前些日子想玩玩Flexlm, 就拿它来开刀,我参考了tulipfan[CCG]大虾的《制作Compuware.SoftIce.Driver.Suite.3.0.1.StinkyD的license》,有些还照搬了!

第二部分: 转入正题

破解FlexLm最主要的是找到4样东西.

1. 确定版本号
2. 找vendor
3. 计算ENCRYPTION_SEED
4. 找FEATURE

有了这几个,就可以使用FlexLm SDK(如果你有)做出注册机了.
btw:FlexLm SDK一般是通用兼容的的,比如7.2就可以制作7.1的,甚至有时7.1也可以制作7.2的,关键是参数设置。

1. 确定版本号

* 确定版本号可以通过lmutil.exe(tulipfan[CCG]大虾提供的工具里有)来确定
* 还有一个办法就是用二进制编辑器,推荐使用HexWorkshop,它的查找功能很强,特别是Find All Instances更是我最最常用的.
在查找对话框Type中选择类型Text String,Value中输入"@(#) FLEXlm v",查找,"@(#) FLEXlm v"后面的就是版本号.
*以上是tulipfan[CCG]大虾说的
而我的方法是用Flexlm SDK里的lmtools(在\flexlm\v7.1\i86_n3目录里),运行进入Utilities,点击“Browse”查找你的Flexlm加密的程序主exe,然后“find version”,在下面就会显示你的Flexlm版本,用v7.1版甚至可以看到8.3版以后,是通用的。

最后确定版本号是7.1f,这一步的目的有两个,一是在lmkg.exe中生成Vendor信息时用,二是在写制作FlexLm的license时使用。

2. 先找FEATURE

我没有用IDA,太麻烦了,既然有SDK和前人的经验,我偷个懒。如果你没有像我的条件就只好去找lc_checkout,其实也不难,我记得在我写上篇《cad2002中文版的破解[网络验证及限制用户]》时,跟踪时我就看到它的FEATURE和VENDOR,但是当时不明白,只觉得这个值很特别就记下来了“41100ACD_2002_0F”和"adskflex",跟踪过程我到是忘记了。
我偷懒的办法,还是用Flexlm SDK里的lmtools!打开“Server status”项,点击“Perform status Equiry”,你就会看到服务器端的正版license.dat内容!

101: SERVER main 001234567890     (我的服务器网卡号,我隐去正确的,避免麻烦啊!)
80: VENDOR adskflex port=8080
150: INCREMENT 41100ACD_2002_0F adskflex 1.000 permanent 100 VENDOR_STRING=(中间有很多参数,省略避免麻烦)SIGN=787878787878(我隐去正确的,避免麻烦,为什么是78 ?)
     关联信息: 省略
170: (overall file checksum)

看到了吗!

VENDOR adskflex
INCREMENT 41100ACD_2002_0F,这个INCREMENT其实就是FEATURE,后面那个1.000就是Version
permanent 是用户数
VENDOR_STRING=  这个也参与计算验证的
中间有很多参数也参与计算验证的,省略避免麻烦
SIGN=787878787878 我就不说了

如果你没有像我的条件就只好去看别的资料学习,很简单的!

3. 找vendor以及计算seed的关键数据

下面引用自tulipfan[CCG]:
“要找vendor_id就需要找到l_sg这个函数了(至于为什么要找这个函数建议看一些更基础的文章),在这儿我主要是介绍一下如何定位l_sg函数,这个是FlexLm的一个内部使用的函数. lc_init,lc_checkout都会调用它下面是它们的调用关系,括号里面的数字是调用的次数,这个是我从7.2i版的demo.exe上跟踪得到的结果,其他版本可能略有不同.

a. lc_init -> l_init
b. l_init -> l_sg

a. lc_checkout -> l_checkout
b. l_checkout -> lm_start_real(2)
c. lm_start_real -> l_good_lic_key(3)
d. l_good_lic_key -> l_sg(2)

从上面可以看到它们的调用关系.

我们可以通过l_sg确定vendor_id和ENCRYPTION_SEED,通过lc_checkout可以确定FEATURE

IDA通过FlexLm的sig文件可以确定上面的大部分函数,再通过他们的调用关系,很容易找到其他函数.

制作FlexLm的批处理文件和工具包可去CrackZ去下载.

最后定位到l_sg函数”

*************************
各位看官说了,我们上面已经找到了 VENDOR,还麻烦什么?
嘿嘿,大头在后面呢!

废话少说,我们直接反汇编acad.exe(好大啊,我的机子是P42.8,用了10多分钟),我们查找“7648B98E”,来到下面,好像就这么1,2处。前人的经验就是宝贵啊,我省了很多事!

* Referenced by a CALL at Addresses:
|:00945490   , :0094C1EA   , :0094C7B0   , :0096383C   , :00971159   
|:00985C14   
|
:0094DB50 55                      push ebp    ====先在这个地方下断
:0094DB51 8BEC                    mov ebp, esp
:0094DB53 83EC30                  sub esp, 00000030
:0094DB56 C745F08EB94876          mov [ebp-10], 7648B98E   ====这个数在确定l_sg函数上很有用
:0094DB5D C745EC03000000          mov [ebp-14], 00000003
:0094DB64 8B4508                  mov eax, dword ptr [ebp+08]
:0094DB67 8B486C                  mov ecx, dword ptr [eax+6C]
:0094DB6A 8B91D4010000            mov edx, dword ptr [ecx+000001D4]
:0094DB70 81E200800000            and edx, 00008000
:0094DB76 85D2                    test edx, edx
:0094DB78 7423                    je 0094DB9D  ====这个跳,第一次肯定会跳的,迷惑了我一下。
:0094DB7A 833DC4DAB50000          cmp dword ptr [00B5DAC4], 00000000
:0094DB81 741A                    je 0094DB9D
:0094DB83 8B4510                  mov eax, dword ptr [ebp+10]
:0094DB86 50                      push eax
:0094DB87 8B4D0C                  mov ecx, dword ptr [ebp+0C]
:0094DB8A 51                      push ecx
:0094DB8B 8B5508                  mov edx, dword ptr [ebp+08]
:0094DB8E 52                      push edx
:0094DB8F FF15C4DAB500            call dword ptr [00B5DAC4] ====在这个地方下断,之后就是我们要的!
:0094DB95 83C40C                  add esp, 0000000C
:0094DB98 E913010000              jmp 0094DCB0

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 236
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
《制作Compuware.SoftIce.Driver.Suite.3.0.1.StinkyD的license》这篇文章哪有啊?我搜索论坛没找到啊
2004-11-4 19:08
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
最初由 ijia 发布
《制作Compuware.SoftIce.Driver.Suite.3.0.1.StinkyD的license》这篇文章哪有啊?我搜索论坛没找到啊


在001老论坛,可惜关了,只好等精华6出来,你再看了,
2004-11-4 21:00
0
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
4
收集一贴。
老迁 是什么 CG来,忘了。抱歉。:D
2004-11-5 13:54
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
5
biotech7  要的FlexLM7.x的sig文件

附件:FLEXlm_Lmgr72f.rar
2004-11-6 11:04
0
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
6
晕。下载不了。
2004-11-6 14:36
0
雪    币: 97697
活跃值: (200829)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持!!!
2004-11-6 14:42
0
雪    币: 251
活跃值: (260)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8

另外,我看了cad2004中文网络版是8.3的,他的在确定l_sg函数上很有用地那个数不同了,也有我找到了,只是我们没有关于8.3的计算工具calcseed.exe(是否一样呢),谁有啊?

一直到10.0这个calcseed.exe都是可以用的,算法没变
2004-11-6 15:11
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
9
最初由 ForEver 发布
晕。下载不了。

可以下载了
2004-11-8 17:10
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
10
最初由 yesky1 发布

一直到10.0这个calcseed.exe都是可以用的,算法没变


我发现2004基本没有改变.
那我们做他2004的无限制license太简单了!我已经成功作出了!
只是动态跟踪有些麻烦,他居然加壳了.还是peid一看是safedisc2.20
才知道Flex被safedisc的那个公司Macrovision Corporation收购了?
2004-11-12 15:53
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢laoqian的奉献!
2004-12-10 15:43
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
收藏先!!!!!
2004-12-10 16:34
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
13
很不错。
老兄,想问你一个问题:我有一款FLEXLM7.2f保护的软件,反汇编后在EXE和DLL文件里面没有发现l_sg函数,而是在动态链接库DLL里发现了确定该函数的7648B98E,结构和你的一样。
请问我怎样去data[]?谢谢
2004-12-10 22:02
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
14
在那里下断点,看看。
DLL下断点,用OD就可以啊。具体看看od的资料。
2004-12-11 11:04
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
15
最初由 ijia 发布
《制作Compuware.SoftIce.Driver.Suite.3.0.1.StinkyD的license》这篇文章哪有啊?我搜索论坛没找到啊

找到了,隐藏的这么深啊!
http://crackforum.bbs.net/bbs/01/271115.html?title=%D6%C6%D7%F7Compuware.SoftIce.Driver.Suite.3.0.1.StinkyD%B5%C4license
2004-12-13 11:48
0
雪    币: 53
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
输入 dd [esp+4]
**********
00F886CC  6B736461
ESP+4    > 00F886CC  ASCII "adskflex"

输入 dd [esp+8]
****1****

0012F608  00000004
0012F60C  1731E48D     data[0]
0012F610  061711DA     data[1]
0012F614  A3A37979
0012F618  CC926A64
0012F61C  A1136749
0012F620  F174A41F
0012F624  00000000
********2************
0012F608  00000004
0012F60C  F3D50069     data[0]
0012F610  E2F3F53E     data[1]
0012F614  A3A37979
0012F618  CC926A64
0012F61C  A1136749
0012F620  F174A41F
0012F624  00000000

输入dd [esp]
******1*****

0131B660  00000066
0131B664  0073001F  
0131B668  AEF0D6A0   job+08
0131B66C  A21343D5   job+0c
0131B670  C156EC2E   job+10
0131B674  00000000
********2***********
0131B6C0  00000066
0131B6C4  0073001F  
0131B6C8  4A143244   job+08
0131B6CC  46F7A731   job+0c
0131B6D0  25B208CA   job+10

这些数据就是我们计算seed1和seed2的关键!

3. 计算ENCRYPTION_SEED

使用工具calcseed.exe,输入上述信息,计算

ENCRYPTION_SEED0 0x39e414xx   =SEED1 为了不给看雪带来麻烦故意给个错的
ENCRYPTION_SEED1 0x28c2e1xx   =SEED2 为了不给看雪带来麻烦故意给个错的

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我用了calcseed.exe,输入上述信息,计算

data[0]  填入1731E48D
data[1]  填入061711DA
VENDORNAME 填入adskflex
但是ENCSEED[0] 陪 ENCSEED[1] 都是空白,????生
selector values 出? Can't convert job08 to int ?息

job+0x08 job+0x0c job+10 也未?生??

?求?忙~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2006-9-8 23:38
0
游客
登录 | 注册 方可回帖
返回
//