国内某TOP报表厂商的软件注册研究

此文,是2年前对国内某TOP报表厂商的(F厂商)的报表产品的注册码注册激活机制的研究。
1、客户端软件的,信息收集码(激活码)
2、服务端软件,上传license激活
3、服务器未注册,有并发用户数限制
4、服务端注册,多实例环境下,支持LicenseServer,集中认证
5、有插件市场,插件的注册机器,与服务器的注册不同。
服务端和客户端,均使用java开发。
目前主流版本为10.0,之前的版本9.0的服务器端license机制,包括8.0的license机制,都有很大的不同。

license机制研究难点:
1、license的核心类,并不在jar包中体现,是java的class文件的加密后的文件,通过instrument,在class加载前加载agent解密,加载license核心类到内存,此处有自定义类加载器;
    【解决手段】在运行后,从内存已加载的class文件,dump出来。【工具】dumpclass,https://github.com/hengyunabc/dumpclass,也可以使用jdk自带的HSDB工具
2、10版本,最高版本的实现方式,其class文件的加密后的文件解密,是rsa解密,并且是在dll(linux是so文件)中实现的
     9.0版本(记得好像是这个版本),嵌套了100层,进行对称解密,此可以逆向出来。

3、报表服务的核心类是混淆过的,并且通过代码在发布前,插入license验证代码,相当于“污染”了正常业务类,并且是很大的范围的。


最终10版本的实现方式:
1、dump出来license核心类,分析其核心license校验逻辑;
2、更改license核心类的核心方法,得到修改的核心方法的字节码 【工具】https://github.com/tinylcy/ClassAnalyzer
3、开发agent,替换license核心类的核心方法,直接以字节码的形式进行替换;
4、使用.lic文件的非加密版本,执行在线注册(上传明文的license文件),加载数据,执行修改的lincense验证方法,绕过license检查
5、rsa不可逆,不对注册码加解密进行分析处理
6、最好host添加屏蔽,因为帆软的代码中对license的处理异常有发邮件,可能也有信息收集,至于web报表前端是否有信息收集,就不太清楚了,这个最好网络抓包分析。

参考资料:

52pj论坛的搜索资料,此处不列出了,别人直接给了代码和项目了。O(∩_∩)O

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值