BES-9.5.2 许可破解逆向分析实录

查看 108|回复 9
作者:denglintao   
前言: 我已经有2篇精华了,好像3篇还是多少篇精华是可以申请啥啥的,我也想拥有3篇精华, 之前写了一篇tongweb7容器破解的文章,结果给通报了,文章给移动了,管理员觉得怕我的小心脏受伤,还将该篇文章给了一个”精华”。这篇也是国产中间件文章,哪怕是擦边后文章万一给删除了,希望管理员能在给个精华,给我个小小鼓励。直接正题开始正常解压BES-9.5.2后,程序目录如下:


image.png (102.77 KB, 下载次数: 0)
下载附件
2023-5-16 11:08 上传

进入bin目录先启动BES服务后,根据BES的相关文档


image.png (107.32 KB, 下载次数: 0)
下载附件
2023-5-16 11:09 上传

执行查看许可命令,可以看出默认许可文件生成的许可是半年期的,结果如下:


image.png (105.59 KB, 下载次数: 0)
下载附件
2023-5-16 11:09 上传

我们可以修改电脑操作系统时间为2024年,此时许可就是过期的,启动如下:


image.png (19.44 KB, 下载次数: 0)
下载附件
2023-5-16 11:09 上传

这时候使用命令查看许可过期时间,如下:


image.png (162.73 KB, 下载次数: 0)
下载附件
2023-5-16 11:10 上传

看来是过期的不可以使用了
那么接下来破解该许可,达到许可永久,或者自定义发布永久许可。找到lmadm命令,看看工具程序入口:


image.png (121.41 KB, 下载次数: 0)
下载附件
2023-5-16 11:10 上传

可以找到对应许可的bes-license.jar,使用反编译工具打开,一堆混淆的class,看来就是它了


image.png (318.55 KB, 下载次数: 0)
下载附件
2023-5-16 11:11 上传

接下来,我们只要分析该class的许可逻辑,分析许可文件的制式,找到公钥,就可以自定义发布永久许可文件。  在这个过程中,分析许可逻辑,虽然我们可以静态分析代码逻辑,但最好的分析还是一个动态调试许可信息的环境,这样方便我们调试程序,更加能快速的分析与破解。 这时候我们可以使用eclipse新建一个java工程,导入相关的jar进行分析(eclipse安装了多种java反编译的工具),看看lmadm命令的主要参数逻辑,可以先分析下许可文件的加载逻辑,然后分析许可文件的制式,找到公钥


image.png (160.56 KB, 下载次数: 0)
下载附件
2023-5-16 11:11 上传

一个LicData类,里面的成员变量都是一些混淆的字母,但这个toString()方法又等于告诉了我们这些字母是什么信息


image.png (114.8 KB, 下载次数: 0)
下载附件
2023-5-16 11:11 上传

在静态分析代码时候,发现了一个获取过期日期的参数,


image.png (102.17 KB, 下载次数: 0)
下载附件
2023-5-16 11:12 上传

可以修改lic.properties文件的参数值,到这里,我很想先试试,如果可以直接修改了,那么把这个值修改为99999….不就是永久了嘛!(我想起永久试用,也是破解,当然我们可以先尝试玩玩,本文主要是逆向分析许可算法逻辑,注册原理,肯定要达到自定义发布许可的)


image.png (183.47 KB, 下载次数: 0)
下载附件
2023-5-16 11:12 上传

很遗憾,修改后是无效的   同理,静态分析又发现一个s类定义了许可信息(注释是根据toString()方法的信息加的)


image.png (214.17 KB, 下载次数: 0)
下载附件
2023-5-16 11:12 上传

以下可以看出许可bes.lic文件是由s类对象序列化的文件,所以使用了java对象流


image.png (288.63 KB, 下载次数: 0)
下载附件
2023-5-16 11:13 上传

我们这时,可以修改该s对象写出一个文件替换试试,以下就是写出的方法


image.png (230.31 KB, 下载次数: 0)
下载附件
2023-5-16 11:13 上传

修改后,再次读取许可发现如下:


image.png (160.1 KB, 下载次数: 0)
下载附件
2023-5-16 11:14 上传

跟踪调试发现,s.j是一个完整性签名,


image.png (68.52 KB, 下载次数: 0)
下载附件
2023-5-16 11:14 上传

那么重新生成过一次


image.png (175.24 KB, 下载次数: 0)
下载附件
2023-5-16 11:14 上传

启动BES服务,进入页面查看许可


image.png (188.45 KB, 下载次数: 0)
下载附件
2023-5-16 11:15 上传

命令查看许可如下:


image.png (109.62 KB, 下载次数: 0)
下载附件
2023-5-16 11:15 上传

修改操作系统时间,启动BES发现服务正常启动,没有过期。到这里,我们已经实现了永久许可了。和我想象的许可不一样,之前我们有破解过tongweb7,myeclipse2022,之类的许可都需要私钥公钥签名,这个BES看来太简单了。  我们还需要完善注册机代码,因为我们是直接生成,经过分析逆向,其实BES的许可控制逻辑主要是以下三个文件,我们前面只是替换了bes.lic文件(有点类似直接修改内存),实现了永久许可。


image.png (57.22 KB, 下载次数: 0)
下载附件
2023-5-16 11:15 上传

Installtime文件的逻辑验证如下:


image.png (138.58 KB, 下载次数: 0)
下载附件
2023-5-16 11:16 上传

那么我们解析来需要实现自定义发布,bes.lic.txt文件,看看该文件内容


image.png (98.55 KB, 下载次数: 0)
下载附件
2023-5-16 11:16 上传

其实就是分析许可导入时候的逻辑了,如何读取该文件,如下所示分析该文件:


image.png (161.31 KB, 下载次数: 0)
下载附件
2023-5-16 11:16 上传

读取bes.lic.txt文件,行读取,可以看见#号的注释的相关都不要


image.png (175.02 KB, 下载次数: 0)
下载附件
2023-5-16 11:16 上传

再来一张图,终于调试到该行了


image.png (228.87 KB, 下载次数: 0)
下载附件
2023-5-16 11:17 上传

发现不进分支,所以代码可能反编译有错,所以再次修改代码如下:


image.png (140.8 KB, 下载次数: 0)
下载附件
2023-5-16 11:17 上传

继续跟踪,其实解析这串许可信息的方法如下:


image.png (165.29 KB, 下载次数: 0)
下载附件
2023-5-16 11:17 上传

可以看出,整个序列串的信息组成,且解密过程


image.png (140.67 KB, 下载次数: 0)
下载附件
2023-5-16 11:17 上传

Base64解码后 的数据


image.png (128.49 KB, 下载次数: 0)
下载附件
2023-5-16 11:18 上传

那么bes.lic.txt的文件生成代码逻辑验证如下:


image.png (247.06 KB, 下载次数: 0)
下载附件
2023-5-16 11:18 上传

看来逻辑是对的,那么只要修改相关的信息,就可以自定义发布许可了 继续完善注册机算法(这里只修改了过期日期,其实其他参数也可以修改),代码如下:


image.png (392.61 KB, 下载次数: 0)
下载附件
2023-5-16 11:19 上传

看,我们已经生成许可了,且修改了许可过期日期


image.png (223.23 KB, 下载次数: 0)
下载附件
2023-5-16 11:19 上传

替换到BES的许可目录,启动,查看许可命令,已经成功了


image.png (215.65 KB, 下载次数: 0)
下载附件
2023-5-16 11:19 上传

在登陆BSE管理页面查看许可,如下:


image.png (189.69 KB, 下载次数: 0)
下载附件
2023-5-16 11:20 上传

到这里破解,自定义发布许可就已经结束了。结语:   好像比意料之中的简单,与之前破解的Tongweb7,myeclipse2022相比,BES的许可控制相较于简单,少了非对称密钥签名等算法逻辑。但许可这种就是防止君子不防止小人的,请大家支持正版。 其他许可相关分析:下图,是对容器服务的支持,许可需要修改对应的信息,可以修改ALL


image.png (124.33 KB, 下载次数: 0)
下载附件
2023-5-16 11:20 上传

下图应该是版本描述类型信息,可以修改许可内容


image.png (115.04 KB, 下载次数: 0)
下载附件
2023-5-16 11:20 上传

我们分析的许可时候,建立的工程结构


image.png (164.38 KB, 下载次数: 0)
下载附件
2023-5-16 11:21 上传

下载次数, 下载附件

雨落惊鸿,   

感谢分享
sdieedu   

感谢分享
zjssun   

感谢分享
wyp123   

兄弟国产商业软件,这东西水很深
pjy612   

咱也挺想,但是不清楚帖子具体要到啥程度才能 精 。。。
yyb1813   

不明觉厉,感觉精是没有问题的,建议精了之后做个视频的,手机看图太累了
xieyulei   

感谢分享  学习了!
同舟   

的确,加个视频最好了
xixicoco   

这个应该是行业软件吧
您需要登录后才可以回帖 登录 | 立即注册

返回顶部