首页
论坛
专栏
课程

[商业保护] [分享]利用Flex 10.1 SDK开发某软件注册机

2011-7-10 22:26 14466

[商业保护] [分享]利用Flex 10.1 SDK开发某软件注册机

2011-7-10 22:26
14466
【软件名称】利用Flex 10.1 SDK开发某软件注册机。
【应用平台】WinXP SP4
【作者邮箱】chubing6143@sina.com
【使用工具】OllyDbg1.10,FlexLM 10.1SDK
【软件限制】FlexLM

        好长时间不破解了,也好长时间没有到看雪来了。
        最近因为需要帮人解决一个软件远程桌面调用的问题,该软件我以前用Flexlm 7.2SDK写的注册机,但是由于FlexLM低版本的SDK不支持远程桌面使用方式,即License文件中不支持TS_OK,因此,需要利用高版本的SDK重新开发NI通用注册机。因此,我就又操起了这一行了,好长时间感觉没有投入破解了,还是怀念当初学习破解的过程,当然由于自己工作的原因,没有坚持下来,因此,连二把刀都不算。写这篇文章只是为了给我这样的初学者提供帮助。考虑到论坛的需要,就不公布是什么软件了。为了给初学者尽可能多的帮助,我将过程记录的尽可能详细,高手飘过。

一、首先安装FLEXnetLicensing.exe(10.1的SDK)。
二、利用CrackZ上下载的Flexvkg3(lmkg.exe)自动生成Vendor为****(怎样找Vendor,论坛上介绍的太多了,不叙述),Version为10的Key如下:
/* Version 10 keys */
#define VENDOR_KEY1 0x0218a4**
#define VENDOR_KEY2 0xa52467**
#define VENDOR_KEY3 0x185a43**
#define VENDOR_KEY4 0xfa721f**
#define VENDOR_KEY5 0x011a5c**
#define TRL_KEY1 0x31f528**
#define TRL_KEY2 0x4cc898**

#define VENDOR_NAME "****"

然后编辑C:\Program Files\flexlm\v10.1\machind\lm_code.h文件,将其中的VENDOR_KEY、VENDOR_NAME与TRL_KEY替换成前面生成的宏定义。

三、将C:\Program Files\flexlm\v10.1\i86_n3\makefile文件中VENDORNAME = demo替换为VENDORNAME = nilm
然后运行cmd,进入命令行模式下C:\Program Files\flexlm\v10.1\i86_n3\lmrand1 –seed
会随机生成LM_SEED1、LM_SEED2、LM_SEED3的值,并生成lmseed.dat文件,将该文件中的LM_SEED值粘贴到lm_code.h中去。
四、考虑到该软件加密是从7.1升级过来的,因此在lm_code.h中粘贴下面的代码:
#define LM_SIGN_LEVEL 1

#define ENCRYPTION_SEED1 0x**1b372e(需要对软件跟踪进行查找,为了安全起见,我隐去了)
#define ENCRYPTION_SEED2 0x**394f25(需要对软件跟踪进行查找,为了安全起见,我隐去了)

#define ENCRYPTION_SEED3 0x12315688 //任意值了
#define ENCRYPTION_SEED4 0x12315688 //任意值了
并将LM_STRENGTH定义为LM_STRENGTH_LICENSE_KEY
#define LM_STRENGTH LM_STRENGTH_LICENSE_KEY

五、此时命令行模式下C:\Program Files\flexlm\v10.1\i86_n3\build.bat会自动生成lmcrypt.exe,该文件就可以将license文件自动完成加密的过程。
然而为了写注册机,还得进行下面的工作。

六、命令行模式下C:\Program Files\flexlm\v10.1\i86_n3\build DLL
会自动生成lmgr10.dll与lmgr10.lib,这两个文件是非常有用的,写注册机时需要链接这两个文件,写注册机时需要SDK中的以及build生成的以下文件:
lm_attr.h、lm_code2.h、lm_code.h、lm_trl.h、lmclient.h、lmhostid.h、lmprikey.h、lmseeds.h、lmgr10.lib、lmgr10.dll。
七、为了在VC工程中能够编译通过,首先将lmprikey.h中的
lm_extern int *l_prikey_sign(void) = 0;
修改为:
lm_extern int (*l_prikey_sign)(void) = 0;
然后在Project Setting中添加PC的宏定义。
写解密的关键代码函数如下:

LM_CODE_GEN_INIT(&site_code);//:初始化Flex变量,主要是lm_code.h中的变量
if (lc_init((LM_HANDLE *)0, VENDOR_NAME, &site_code, &lm_job))
{
        lc_perror(lm_job, "lc_init failed");
        exit(-1);
}
if (lc_cryptstr(lm_job, fileCrypt, &ofile_str, /*&v*/&site_code, forceit, "",
                        &err))//laowang :关键函数将License文件字符串内容加密求得正确的License文件
{
        MessageBox(NULL,"lc_cryptstr 运行错误,请联系作者!",filePath,MB_OK);       
}

到此就完成了,如果有我等初学者对此感兴趣的,我可以考虑将基本的注册机代码发上来。

[公告]看雪20周年会 | 感恩有你,一路同行

最新回复 (11)
clide2000 7 2011-7-11 00:08
2
0
对 Flex 完全不懂。
要是有个练习的例子就好了。
wztuxw 2011-7-11 00:14
3
0
谢谢楼主了,注册机代码发个学习一下啊!
linhanshi 2011-7-11 01:13
4
0
Support. Welcome forum.forum is a home.

Please respect the copyright from the Internet.

Пожалуйста, уважайте авторское право в Интернете.

來源于互聯網, 請尊重版權.

You can Google.  

Программное обеспечение выпуска и Windows Crack Обучение
Нам-Dabei Guanyin Бодхисаттва Нам без митабха
laowanghai 13 2011-7-11 12:23
5
0
CrackZ上有例子的,学习Flex,那是一个非常好的网站。
kwzlj 2011-7-11 16:14
6
0
winXP 出 SP4了吗?
youxibar 2011-7-11 16:33
7
0
肯定没有
而且也不会出
winXP就要退役了
微软会趁热打铁
大力推进win 7的市场份额
email123 2011-7-11 17:14
8
0
啥时候发注册机代码呀?期待啊
laowanghai 13 2011-7-12 00:09
9
0
稍等,我需要刻盘,然后才能传上来。办公室不能上网了,可怜的人。
我的节拍 2011-7-14 15:59
10
0
看来不错的 我等等试试试
wztuxw 2012-3-1 21:41
11
0
老大,注册机的代码好像没有发啊。呵呵,好久没人关注了啊。
bridgeic 2 2012-6-18 10:04
12
0
写注册机如何调用SDK的问题困扰我很久了(http://bbs.pediy.com/showthread.php?t=151429),此帖给了答案,但是具体还是不知道该怎么弄,要是老大能分享下注册机代码(哪怕是部分)学习下就好了。
游客
登录 | 注册 方可回帖
返回