首页
社区
课程
招聘
Flexlm9.2的问题[讨论]
发表于: 2006-9-24 16:42 24569

Flexlm9.2的问题[讨论]

2006-9-24 16:42
24569
收藏
免费 0
支持
分享
最新回复 (40)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
最初由 marstj 发布
to wilo:
hi,您给的守护程序我已经分析了,seed1=0x346534B9
seed2=0x92C9954F
cs:41fde8 xor edx,ebx 执行后dl的值为seed的值,共有8个
字节。设置bpx cs:41fde8共中断8次。
........


地址本来在47fd66 push ecx     ,如何找到41fde8这儿?
2006-9-30 15:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
请marstj回复一下,谢谢
2006-10-4 10:04
0
雪    币: 193
活跃值: (276)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
to pangzhi:
   反汇编程序,查找Flexwrap串,相关的程序段如下,
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047FD08(C)
|
:0047FD4B 8B4DF4                  mov ecx, dword ptr [ebp-0C]
:0047FD4E 33D2                    xor edx, edx
:0047FD50 8A9124010000            mov dl, byte ptr [ecx+00000124]
:0047FD56 83FA04                  cmp edx, 00000004
:0047FD59 0F844E010000            je 0047FEAD
:0047FD5F 8B450C                  mov eax, dword ptr [ebp+0C]
:0047FD62 50                      push eax
:0047FD63 8B4DF4                  mov ecx, dword ptr [ebp-0C]
:0047FD66 51                      push ecx        ----------------ds:ecx+2的内容为feature name
:0047FD67 8B15E8F34B00            mov edx, dword ptr [004BF3E8]
:0047FD6D 52                      push edx
:0047FD6E E80D180000              call 00481580
:0047FD73 83C40C                  add esp, 0000000C
:0047FD76 85C0                    test eax, eax
:0047FD78 0F852F010000            jne 0047FEAD

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0047FD29(C), :0047FD49(C)
|

* Possible StringData Ref from Data Obj ->"FLEXwrap"
                                  |
:0047FD7E 68D4EF4A00              push 004AEFD4
:0047FD83 8B4508                  mov eax, dword ptr [ebp+08]
:0047FD86 50                      push eax
:0047FD87 E8645EFEFF              call 00465BF0
:0047FD8C 83C408                  add esp, 00000008
:0047FD8F 89459C                  mov dword ptr [ebp-64], eax
:0047FD92 837D9C00                cmp dword ptr [ebp-64], 00000000
:0047FD96 7414                    je 0047FDAC
注意最靠近:Flexwrap"之前的一个call,注意该call的参数,其中ds:ecx+2为feature name。在softice中设置bpx cs:0047FD66,中断后记下ecx+2的值,设置bpm ds:ecx+2,就可以跟踪到程序对特征名进行处理的代码段,当然就可以找到算法了。
您多试试,一定有所收获。
2006-10-4 10:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
谢谢指点,我再试试。
2006-10-5 09:12
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
现在我重新测试了一下,结果是不行~
不知道该如何解释

现在应该令人怀疑的是怎么由种子产生合法的LIC文件,

我用CRACKZ网站上面的简单的清除种子的值3D4DA1D6,直接找到种子
跟我第一次用LAOQIAN方法找到的一样,

to marstj:

怎样才能确定种子正确?laoqian的方法与flexwrap方法找到的种子不同怎么办?
2006-10-6 10:38
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
To lightgun:

能否介绍关于vendor-check function 的一般对策?

再者,我手上没有正确的lic,所以不能确定使用什么格式,12位?20位?

或者更多?
2006-10-12 11:08
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
32
12位?20位?16位?都不重要的,只要是正确的就可以!――当然ecc的需要解决
2006-10-12 12:40
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
最初由 lightgun 发布
ECC 私钥加密,公钥验证,不存在直接比较


实际上我的测试结果是我查找到一个比较的地方,就是2位比较

12位和16位是每两位测试一次,不对就退出!

20位的时候第1、3位一组,2、4一组,其它都是每2位比较了。

究竟有没有ecc呢??
2006-10-12 21:33
0
雪    币: 203
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
你跟踪到的比较方法我也跟踪到了,当时我跟踪的那个软件就没有ECC,ECC应该是很难找到跟踪的地方的.
2006-10-12 22:23
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
现在,我把flexwrap这个方法整理一下,把顺序变一下,试验一下,看看能不能通用。
我先把我的思路整理一下:

0.copy lic file to c:\flexlm, use the file name lisence.dat

1.use Ida to load the vendor program "-c -l lisence.dat"(into c:\flexlm)

2.find the first two ocurance of 3D4DA1D6, break on all of them.

3.from the position of 3D4DA1D6 , find back about 30 lines until find like "test    ecx, ecx;  jz

xxxx"break on "jz" change to "test    ecx, ecx;  jnz xxxx"
or set Ip below "jz".

4.        find out the seeds!
2006-10-19 16:26
0
雪    币: 215
活跃值: (12)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
36
wilo说的对
但是最后license的制作很重要
1)用flexwrap法跟出的licese,最后的license里必须加上SERVER与DEAMON行,否则不能用,至少我遇到的情况都是这样
2)用主程序_l_sg函数返回跟出的seed,可以要SERVER与DEAMON行,也可以不要
1与2会得到不一样的SIGN
3)我好象用这两种方法可能得到不一样的seed,但是一样用,我现在不敢确认,等我确认完了,继续在这里跟

2006年10月21日:
已经确认:却是SEED可以不一样,作出的license不一样,但是都是可以用
我现在的发现的都是SEED1不一样,但是SEED2一样。
很奇怪。

现在发现,有的是一样的.

2006年11月28日
我明白为什么会有SEED不一样的情况:因为一个软件里有两个vendor,各自发各自的,但又都能用。甚至分别是两个不一样的flexlm版本同时存在于同一个FEATURE里。我的这个就是FLEXnet10与Flexlm9.2同时存在于同一个FEATURE,具有不同的SEED.
2006-10-20 21:59
0
雪    币: 84
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
最初由 marstj 发布
To xzwlyx:
CamXXXXXFlexlm的种子如下:seed1=0x3D5066A3
seed1=0x290A944C
在其守护程序teksoft中,算法的地址为 cs:42204a
cs:42250b xor edx,ebx
........

To xzwlyx:
能否将你的那个程序再次上传(或者传到我的QQ:50506304),好让我们学习marstj大侠的是如何神奇的找到42250b这个地方,多谢。
To marstj:
如果你有空,能否举个例子说明一下如何找到这个42250b xor edx,ebx这个地址。因为我发现有些程序里根本没有这句指令,有可能是另外的寄存器之间的异或。另外,您指的这个地址是不是在_l_string_key这个函数里?望不吝赐教,谢谢!
2006-11-17 01:15
0
雪    币: 193
活跃值: (276)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
请注意我在28贴中的回复:

反汇编程序,查找Flexwrap串,相关的程序段如下,
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047FD08(C)
|
:0047FD4B 8B4DF4                  mov ecx, dword ptr [ebp-0C]
:0047FD4E 33D2                    xor edx, edx
:0047FD50 8A9124010000            mov dl, byte ptr [ecx+00000124]
:0047FD56 83FA04                  cmp edx, 00000004
:0047FD59 0F844E010000            je 0047FEAD
:0047FD5F 8B450C                  mov eax, dword ptr [ebp+0C]
:0047FD62 50                      push eax
:0047FD63 8B4DF4                  mov ecx, dword ptr [ebp-0C]
:0047FD66 51                      push ecx        ----------------ds:ecx+2的内容为feature name
:0047FD67 8B15E8F34B00            mov edx, dword ptr [004BF3E8]
:0047FD6D 52                      push edx
:0047FD6E E80D180000              call 00481580
:0047FD73 83C40C                  add esp, 0000000C
:0047FD76 85C0                    test eax, eax
:0047FD78 0F852F010000            jne 0047FEAD

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0047FD29(C), :0047FD49(C)
|

* Possible StringData Ref from Data Obj ->"FLEXwrap"
                                  |
:0047FD7E 68D4EF4A00              push 004AEFD4
:0047FD83 8B4508                  mov eax, dword ptr [ebp+08]
:0047FD86 50                      push eax
:0047FD87 E8645EFEFF              call 00465BF0
:0047FD8C 83C408                  add esp, 00000008
:0047FD8F 89459C                  mov dword ptr [ebp-64], eax
:0047FD92 837D9C00                cmp dword ptr [ebp-64], 00000000
:0047FD96 7414                    je 0047FDAC
注意最靠近:Flexwrap"之前的一个call,注意该call的参数,其中ds:ecx+2为feature name。在softice中设置bpx cs:0047FD66,中断后记下ecx+2的值,设置bpm ds:ecx+2,就可以跟踪到程序对特征名进行处理的代码段,当然就可以找到算法了。

清注意feature name是license文件中给出的,软件肯定要对它进行处理,用查找到Flexwrap的方法可以确定到feature name存储在内存中的地址。在s-ice中用bpm指令就可以找到feature name被复制到的最终位置,而计算licesne密码的算法必定要对该位置的内容进行处理。找到算法后,您仔细分析,找到seeds很容易。[QUOTE]
2006-11-17 16:09
0
雪    币: 84
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
To marstj:
谢谢!我仔细分析一下。找到该处后,我总结一下和大家分享。
2006-11-17 17:36
0
雪    币: 84
活跃值: (710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
To marstj:
我找到你说的那个地址了的,在我的程序里是xor al,bl,bl里面放的是seed,而这个算法就在我说的_l_string_key里面。不过我这个程序非常复杂,用了自定义函数。算出seed是没有用的。Anyway,I really appreciate you,Marstj!You give us a brandnew way to find the correct seed..
2006-11-18 10:10
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
当然,marstj介绍了了一个好的方法,非常感谢!

不过我另外一个问题请教:

是不是可以在这个地方查到关于vendor-info的处理呢?

我听梅梅说主要处理在config结构,不过我不太清楚在vendor程序里面是否可以找到相应的处理位置?
2006-11-20 11:18
0
游客
登录 | 注册 方可回帖
返回
//