1) IDA pro/FLAIR and FLEXlm/lmgr.lib are required
2) under the command prompt, type followling command:
>flair/bin/pcf lmgr.lib lmgr.pat or you can try: flair/bin/plb lmgr.lib lmgr.pat
>flair/bin/sigmake lmgr.pat lmgr.sig
Bingo!
We get the flexlm10's sig file which will recognize the function of flexlm 10.
目标程序:target.exe,FLEXnet 10采用ECC增强加密[因为不想公开程序名 所以用target.exe代替]
工具:IDA pro5, 如上制作的lmgr.sig, UltraEdit
原理:如1楼所述说过,将_l_pubkey_verify()补丁了就可以了。
操作:
1)IDA打开target.exe
要很长时间 可以刷牙,洗脸完毕也差不多了
2)sig识别
File>>>Load File >>> Flair sig 载入制作的flexlm10_lmgr.sig
3)定位_l_pubkey_verify()与修改
Function >>> search>>>_l_pubkey_verify() 找到代码段 双击来到代码段
如下开头的标记:
.text:0060D410
.text:0060D410 ; *************** S U B R O U T I N E ***************************************
.text:0060D410
.text:0060D410 ; Attributes: library function bp-based frame
.text:0060D410
.text:0060D410 ; int __cdecl l_pubkey_verify(int,int,int,void *,size_t,int,int,int,int)
.text:0060D410 _l_pubkey_verify proc near ; DATA XREF: sub_5EC0B0+94EFo
往下看第一个push 与 mov操作码,我们就在这里下手:
我的如下:
:0060D40E CC int 03
:0060D40F CC int 03
:0060D410 55 push ebp
:0060D411 8BEC mov ebp, esp
用UltraEdit修改成:
:0060D40E CC int 03
:0060D40F CC int 03
:0060D410 33C0 xor eax, eax
:0060D412 C3 ret