首页
社区
课程
招聘
[求助]求助FlexLM中的一点疑问?
发表于: 2009-9-2 21:56 10152

[求助]求助FlexLM中的一点疑问?

2009-9-2 21:56
10152
我最近研究一款软件,采用查字符串出来的是 v9.2版本的,lmutil lmver 命令检测结果和我用查找字符串的方法得到的结果都是:FLEXlm v9.2.0 (lmgr.lib),但是程序运行过程中
0013E4A4  39300020   .09
0013E4A8  0000302E  .0..
貌似9.0版本?这是为何呢,是不是9系列的在调试时都显示 .09.0..

第二询问:我在_l_sg中下了三个断点(参考的是laoqian文),采集d [esp],d[esp+8]数据,
然后采用calcseed.exe代入5个数据+1个VENDOR字符串,结果每次采集的数据都差1位,我不知道为什么?我想请问类似如下数据:
d[esp+8]
0013E484  00000004  ...
0013E488  6001C9D9  偕`         data[0]
0013E48C  7216C997  椛r          data[1]
0013E490  1808A1E5  濉       VENDOR_KEY1(这个貌似我瞎猜的,和VENDOR_KEY无关)
0013E494  ED49CD55  U虸      VENDOR_KEY2
0013E498  0E5D66DC  躥]         VENDOR_KEY3
0013E49C  CF2BD09D  澬+       VENDOR_KEY4
0013E4A0  00020009  ...          VENDOR_KEY5
0013E4A4  39300020   .09
0013E4A8  0000302E  .0..

d[esp]
01E1F0B8  00000066  f...
01E1F0BC  00FE0085  ??         
01E1F0C0  C18F5FDE  轤徚      job+08
01E1F0C4  00E7E232  2忡.        job+0c
01E1F0C8  004A0000  ..J.          job+10
01E1F0CC  00000000  ....

这个过程应该是没问题的,我也是采用了fake的 sign,遇到之前的je short_xxxx也是第一次跳过,第二次到之后的 call _l_n36_buff停下,然后F8步过,查看的内存值。

现在的疑惑是,如果按照上面的,我的理解是:
data[0]=0x6001C9D9
data[1]=0x7216C997  
job+08=0xC18F5FDE  
job+0c=0x00E7E232  
job+10=0x004A0000  
但是用这组数据和不会有错的VENDOR,利用calcseed计算结果就总是相差第三个BYTE的值,0x1122xx44,也就是xx两位总是不相同。

我随意测试了逆序,也就是我把上述五个数字的顺序逆过来:
0xD9C90160,0x97C91672,0xDE5F8FC1,0x32E2E700,0x00004A00
这组数据居然对每次不同的数据都能计算得到固定的 encrypt_seed1和encrypt_seed2。

但是问题是,我用得到的这两个加密种子,也算不出正确的 sign。
请大侠给我指点,关于data和job的顺序,到底是否存在特殊情况,你们都是怎么处理的。

还有一个问题是请问 ollydbg中注释中出现的函数名是怎么加入的,IDA我知道是采用sig,结果sig做好了,加入分析也有很多引用,但就是没见到名称,请教各位大小有没有出现过这种情况,谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你用得这个办法比较麻烦,还有其他的方法找Seed1/2,找对断点,直接就看到种子了。请在论坛搜索一下。
2009-9-3 11:03
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢 wztuxw,你提到的直接看到种子,我的确没有能够检索到相应的文章,如果有高人能给个链接或者回复,不胜感激!
2009-9-3 21:49
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
奇怪的是我自己做了一92版本的sig,明明已经起到作用了,但是函数名还没有修改过来,依然是数字,不知道是否IDA 52中文版的缘故。
2009-9-3 22:42
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
FlexLM大侠都在学潜水了,我怀疑旧日好用的根据data[0],data[1],job+08,job+0c,job+10以及VendorName的方法已经不好用了。

我的方法完全按照论坛前辈的流程,抓到的数据表面上看也一切正常,但是calcseed之后得到的种子用lmcryptgui.exe就是没法生成正确的授权(.exe)。所以我怀疑这里是否应该特殊情况特殊处理。

而且我发现 calcseed中填入的vendor仅第一位字符起到运算的作用,其后面的字符不影响seed结果。
2009-9-4 23:35
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=weiguoqiu;681685]FlexLM大侠都在学潜水了,我怀疑旧日好用的根据data[0],data[1],job+08,job+0c,job+10以及VendorName的方法已经不好用了。

我的方法完全按照论坛前辈的流程,抓到的数据表面上看也一切正常,但是calcseed之后得到的种子用lmcryptgui.exe...[/QUOTE]

此方法仍然适用于flexlm最新版本,如果抓到的数据问题,那肯定是有你没有注意到地方。

方便的话提供下对应的daemon程序,我帮你看看。

NoFlexlm@163.com
2009-9-5 10:52
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=NoFlexlm;681843]此方法仍然适用于flexlm最新版本,如果抓到的数据问题,那肯定是有你没有注意到地方。

方便的话提供下对应的daemon程序,我帮你看看。

NoFlexlm@163.com[/QUOTE]

1.抓数据的过程严格按照laoqian的教程,应该没有问题。由于是FLexLM新手,怀疑是内部保护又做了处理。

2.daemon程序我不懂是什么,给的试用lic只有Feature行。当然后来也出了Server,但是我并不知道怎么用。请教是否daemon相对于软件本身要小很多,所以行家一出手便先解决daemon,然后再测试客户端程序的?

谢谢了,NoFlexlm。
2009-9-5 16:30
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
就是那个文件名为vendor.exe的可执行文件,如果没有就得调试客户端软件了。
2009-9-6 16:54
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9


没有vendor.exe的可执行文件,但是有个server,貌似网络服务器,不知道这个server是否起到daemon的作用?
2009-9-7 07:17
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
人家不是说“vendor.exe”这个文件,vendor是个变量,指的是你填在calcseed的那个东西
2009-9-11 12:33
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
晕倒,我是知道vendor需要用产品销售厂商名字替代啊,但是的确没有这个exe。

例如vendor=ddd,那么软件目录中是没有ddd.exe啊

我的理解是需要调试服务程序,服务程序里面隐藏有验证注册信息的机制,也许你的理解还不如我的理解正确呢。
2009-9-14 07:17
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
好吧,那你自便
2009-9-15 09:26
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
顶一下1,支持楼主
2009-9-22 21:54
0
游客
登录 | 注册 方可回帖
返回
//