您的位置:首页 > 其它

LibXL 算法分析(附注册机)

2017-07-24 16:26 351 查看
转载自:http://www.52pojie.cn/thread-566985-1-1.html

 

【文章标题】: LibXL 算法分析(附注册机

【文章作者】: GCCG

【软件名称】: LibXL

【下载地址】: http://www.libxl.com

【加壳方式】: 无加壳

【编写语言】: Visual C++

【使用工具】: OllyDbg

【操作平台】: windows

【软件介绍】: LibXL is a library that can read and write Excel files. It doesn't require Microsoft Excel and .NET framework, combines an easy to use and powerful features.


 

LibXL 可以原格式读写 Excel ,不需要电脑安装 Office, 具体使用请参照官网的文档:http://www.libxl.com/documentation.html
好久没练手了, 这次分析下算法. 看下 libxl.dll 中的导出函数 xlBookSetKeyA(BookHandle handle, const char* name, const char* key); 
很容易找到关键地方。编写个测试 exe 进入 xlBookSetKey 开始调试。我只简单描述下关键地方.

[Asm] 纯文本查看 复制代码

?
下面 是对用户名,注册码长度判断

[Asm] 纯文本查看 复制代码

?
[Asm] 纯文本查看 复制代码

?
下面一段代码 取出32位注册码的第1,3,5,7,9,11,13,15,17,19,21,23,25位,并将取出的字符连接成字符串

[Asm] 纯文本查看 复制代码

?
对上一步取出的字符串 求 MD5,并截取 前 16 位,比较 md5 值的 前 16 位 是否是 3f8bfcaff330c39f

[Asm] 纯文本查看 复制代码

?
以下代码, 可知注册码第 27, 29, 31 位满足关系

[Asm] 纯文本查看 复制代码

?
由上面可得知 注册码第27, 29, 31 位 满足以下关系

[Asm] 纯文本查看 复制代码

?
算法总结:

1. 注册码格式:windows-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(windows- 后面 32 位) 

2. 32位注册码的第1,3,5,7,9,11,13,15,17,19,21,23,25位是固定值, 分别是  22200ce06b66a

3. 32位注册码的第2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28,30, 32位是:用户名字符串,经过翻转, 求出 MD5 值, 然后 取 前 16 位

4. 32位注册码的第27, 29, 31 位满足以下关系:

    (1)   ASC(29位)+ASC(31位)-0x69 = ASC(27位字母)

    (2)  ASC(29位) >= 0x63  并且  ASC(29位) 不能等于 0x65,  而且 当 ASC(29位) = 0x66 时,ASC(31位) >=0x6C

以下是注册机源码的关键部分(使用 PowerBASIC 语言 



[Visual Basic] 纯文本查看 复制代码

?
--------------------------------------------------------------------------------

【版权声明】: 本文原创于吾爱破解论坛, 转载请注明作者并保持文章的完整, 谢谢!

附一张注册机截图:(帖子附件包含注册机,以及注册机的 PowerBASIC 源码 )


(提示:杀软可能会误报, 不信者可以自己编译。)


 

注册机+源码:


 Keygen
for LibXL.rar (124 KB, 下载次数: 167) 
用法:

见30楼:http://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=566985&pid=14784663

 

点评

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: