首页
社区
课程
招聘
[求助]FLEXLM_ECC关键函数
发表于: 2013-10-11 16:32 6718

[求助]FLEXLM_ECC关键函数

2013-10-11 16:32
6718
今天看了空中剑客写的“手工快速识别+破解 FLEXLM_ECC关键函数”后针对“爆破l_pubkey_verify”做了调试并找到l_pubkey_verify函数的switch(strength),设置断点后发现在整个license交互过程中根本没有运行到这个位置。

有人知道是怎么回事吗?flexlm版本为11.5

另外追问一下:哪里有l_pubkey_verify的源代码?FLEXLM sdk里面好像没有这个源码,它只有lib文件里面包含了二进制代码。

[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 753
活跃值: (2913)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
要跟踪到达l_pubkey_verify(),必须要有 license,license 的 FEATURE(INCREAMENT) 行在形式上必须完整、正确,HOST_NAME、VENDOR_NAME、FEATURE_VERSION、LICENSE_DATE、VENDOR_STRING 必须符合要求,能够通过检查,才能最后进入 LICENSE_KEY 的检查验证环节。才有可能调用 l_pubkey_verify()。

在非调试态下,启动 VENDOR_DAEMON,如果能看到 "Invalid license key (inconsistent authentication code)" 的信息说明许可文件 license 的内容在形式上已经符合 FLEXlm 的要求, l_pubkey_verify() 已经验证过对应的 license key 了。
2013-10-11 21:23
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我就是完整的环境下跟踪的,整套环境都是正式购买可用的。
2013-10-12 11:27
0
雪    币: 753
活跃值: (2913)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如果是这样,那答案就很简单了,你识别的函数是错的!
2013-10-12 12:08
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
; ---------------------------------------------------------------------------

loc_4BAD05:                             ; CODE XREF: .textidx:004BAC8Aj
                                        ; .textidx:004BAC9Fj
                mov     eax, [ebp+24h]
                sub     eax, 2
                mov     [ebp-4Ch], eax
                mov     ecx, [ebp+24h]
                mov     [ebp-0E4h], ecx
                cmp     dword ptr [ebp-0E4h], 4 ; switch 5 cases
                ja      short loc_4BAD4F ; jumptable 004BAD26 default case
                mov     edx, [ebp-0E4h]
                jmp     ds:off_4BB3E5[edx*4] ; switch jump

loc_4BAD2D:                             ; DATA XREF: .textidx:off_4BB3E5o
                xor     eax, eax        ; jumptable 004BAD26 case 0
                jmp     loc_4BB3E1
; ---------------------------------------------------------------------------

loc_4BAD34:                             ; CODE XREF: .textidx:004BAD26j
                                        ; DATA XREF: .textidx:off_4BB3E5o
                mov     dword ptr [ebp-58h], offset unk_55A2C0 ; jumptable 004BAD26 case 2
                jmp     short loc_4BADB3
; ---------------------------------------------------------------------------

loc_4BAD3D:                             ; CODE XREF: .textidx:004BAD26j
                                        ; DATA XREF: .textidx:off_4BB3E5o
                mov     dword ptr [ebp-58h], offset unk_55A0E0 ; jumptable 004BAD26 case 3
                jmp     short loc_4BADB3
; ---------------------------------------------------------------------------

loc_4BAD46:                             ; CODE XREF: .textidx:004BAD26j
                                        ; DATA XREF: .textidx:off_4BB3E5o
                mov     dword ptr [ebp-58h], offset unk_559F00 ; jumptable 004BAD26 case 4
                jmp     short loc_4BADB3
; ---------------------------------------------------------------------------

loc_4BAD4F:                             ; CODE XREF: .textidx:004BAD1Ej
                                        ; .textidx:004BAD26j
                                        ; DATA XREF: ...
                mov     eax, [ebp+8]    ; jumptable 004BAD26 default case
                cmp     dword ptr [eax+80h], 0
                jz      short loc_4BAD72
                xor     ecx, ecx
                test    ecx, ecx
                jz      short loc_4BAD72
                mov     edx, [ebp+8]
                mov     eax, [edx+80h]
                mov     [ebp-0E8h], eax
                jmp     short loc_4BAD7C
2013-10-12 20:41
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
反汇编来看跟代码没什么区别的嘛,应该是找对的吧
2013-10-12 20:45
0
游客
登录 | 注册 方可回帖
返回