首页
社区
课程
招聘
[讨论]关于Flexlm v11.5 的ECC的2处标志....
发表于: 2009-4-3 23:16 24460

[讨论]关于Flexlm v11.5 的ECC的2处标志....

2009-4-3 23:16
24460
最近成功破解了Flexlm v11.5 ECC,是通过更改ECC的2处标志,再通过找出的seed1、seed2生成12位SIGN。

在“【翻译】FLEXlm latest information by CrackZ ”有关于第2处ECC 标志的说明,我没有看明白:


标记1

6AF454―在6AF426地址处用静态指令“ADD ECX, 1”设为1,就只用了一个字节的改变将ADD ECX,0打补丁了。但是Imaris有同样的参考所以在代码路径(code path)必须有个变量(variation)。经过比较Imaris与censored的代码流,我们发现了下面的“开关”代码:
:006AF354 mov edx, [ebp+var_5DC]
:006AF35A cmp dword ptr [edx], 0
:006AF35D jz loc_6AF434 ;      0x0 Imaris, 0x10 *censored*
这是我们向后跟踪的真正开关,它位于_l_buf_36()(子程序,在下面有描述)里面,唯一可靠查找方式是去的定位静态值存储在什么地方,如下所示。

i)在_l_buf_36()子程序下断点,下d *(esp+8)命令,在数据窗口查看vendor代码结构的指针,有时候,你可能要用SoftICE叫出该地址。

ii)在[vedor 代码结构+3Ch]设bmp w命令,监视写出的值,任何非零的值都是数据写入的静态位置(注意,你可能得到3或******此处为翻译,实在不知道是什么意思。)。一旦我们确定了正确的位置,我们就可以在这打个静态数据的小补丁。
:00405FB6 mov eax, [edx+3Ch]
:00405FB9 add eax, dword_81C7F8 ; 0x10 静态数据
:00405FBF mov ecx, [ebp+0Ch]
:00405FC2 mov [ecx+3Ch], eax ;    写标记

上面这段我没有看明白。。

附相关代码:

.text:10001000                 push    ebp
.text:10001001                 mov     ebp, esp
.text:10001003                 sub     esp, 9Ch
.text:10001009                 cmp     [ebp+arg_14], 0
.text:1000100D                 jz      short loc_10001018
.text:1000100F                 mov     eax, [ebp+arg_14]
.text:10001012                 mov     dword ptr [eax], 2                        ;第1处ECC Flag : 将2改为0,除去ECC FLAG标志
...

.text:1001034A                 mov     ecx, [ebp+Dst]
.text:1001034D                 mov     edx, [ecx+3Ch]
.text:10010350                 add     edx, dword_1012BADC                                ;第2处ECC Flag: 将1012BADC中的数据改为0
.text:10010356                 mov     eax, [ebp+Dst]
.text:10010359                 mov     [eax+3Ch], edx
.text:1001035C

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

收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
嘿嘿,用程序可以实现的
2009-4-4 11:23
0
雪    币: 671
活跃值: (3070)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像是有时间限制的吧
2009-4-4 11:50
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主你找的位置是正确的,应该没有啥疑问了吧。
2009-4-4 19:10
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然我找到了这2处位置,但却没有找到正确找这2处Flag的好方法,也就是说,换个软件,我可能第2个标志(静态数据0x10h)又找不到了。。

请问你能说下正确的通用方法吗?
2009-4-4 22:26
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你曾发的ECC FLAG Patcher,已提示过期了,怎么回事呢?
2009-4-4 22:27
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
把你在IDA里反汇编的程序发给我看看是否可行,我那个程序还没有更新
2009-4-4 22:56
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不知道有没有什么好的方法快速定位以下处代码(我是没有找到好的方法,本软件里我只是运气好,找到了):

.text:10010341 loc_10010341:                           ; CODE XREF: _l_n36_buf+F32Aj
.text:10010341                 cmp     dword_10146E78, 0
.text:10010348                 jnz     short loc_1001035C
.text:1001034A                 mov     ecx, [ebp+Dst]
.text:1001034D                 mov     edx, [ecx+3Ch]
.text:10010350                 add     edx, dword_1012BADC        ;第2处ECC Flag: 将1012BADC中的数据改

为0(原值为0x10h);
.text:10010356                 mov     eax, [ebp+Dst]
.text:10010359                 mov     [eax+3Ch], edx
.text:1001035C
.text:1001035C loc_1001035C:                           ; CODE XREF: _l_n36_buf+F348j
2009-4-5 11:46
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我是说exe程序
2009-4-5 13:52
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
/////////////////////////////////////
上传的附件:
2009-4-5 15:10
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
exe程序太大了,没有办法传
2009-4-5 21:27
0
雪    币: 324
活跃值: (237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
10楼似乎是新版本的程序吧?
最开始发布的程序确实无法用了。。。
2009-4-6 21:40
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
EccFlagPatcher_V1.2.rar

请勿滥用!
2009-4-7 00:34
0
雪    币: 135
活跃值: (191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
依旧提示无法使用,如何注册?
2009-4-7 11:54
0
雪    币: 107
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谁说不可以用?只是有一个提示而已。
请不要放在硬盘根目录!!请放在安装软件的目录运行
因为程序是自动遍历当前目录下的所有目录的,如果放在硬盘根目录下,将花费很长时间的!!

另外patch之前要去掉文件的只读属性,不然打不了补丁的

这个功能后面会加上去的
2009-4-7 15:24
0
雪    币: 135
活跃值: (191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
收到!这是l_pubkey_verify()的补丁?还是SIGN=12?
2009-4-7 15:36
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
SIGN=12的。。。
2009-4-8 22:14
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
请问该补丁程序下载后不能运行,提示已过期
2009-5-27 23:05
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
提示已过期..
2009-5-28 12:19
0
雪    币: 503
活跃值: (4877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
作者很"小气"(:)),总是设置时间限制。。。
2009-5-28 12:31
0
雪    币: 200
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
楼上的没试过吗?改一下时间就能用的。可惜我的不能用,不知为啥
2009-6-3 19:58
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
楼主可以讲讲第2个标志(静态数据0x10h)如何找的吗?

在lm_cro.h里有这样的定义:

#define LM_STRENGTH_LICENSE_KEY        0       
#define LM_STRENGTH_DEFAULT        1       
#define LM_STRENGTH_113BIT        2
#define LM_STRENGTH_163BIT        3
#define LM_STRENGTH_239BIT        4
#define LM_STRENGTH_PUBKEY        LM_STRENGTH_113BIT
#define LM_STRENGTH_VERYHIGH        LM_STRENGTH_239BIT
                                /* >= PUBKEY uses Public-Key */

/*
*        Values for LM_SIGN_LEVEL
*/
#define LM_SIGN2         2  /* SIGN2= */
#define LM_SIGN                 1  /* SIGN= the default */
#define LM_NO_SIGN         0  /* license key */
#endif /* LM_CRO_H */

所以你的文件中
.text:10001012                 mov     dword ptr [eax], 2      ;第1处ECC Flag : 将2改为0,除去ECC FLAG标志
应该是LM_SIGN_LEVEL=2的意思。但是 0x10 指的是什么呢?
2009-9-25 17:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
路过时,不小心捡到大元宝ECCpatch
2009-12-12 18:23
0
雪    币: 284
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我也想知道这个问题,怎样找到这两处标志
2010-5-14 16:09
0
雪    币: 334
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
Mark
2017-8-4 08:00
0
游客
登录 | 注册 方可回帖
返回
//