关闭

润乾报表软件破解流程

标签: 软件破解报表二进制润乾
1083人阅读 评论(0) 收藏 举报

注解:本文仅作为技术学习,如果他人利用本文做非法商业活动与作者无责。


总体破解思路,分析软件读取 授权文件 流程,查找授权文件中哪些字段被用作检验正版的标识。修改这些标识,按照分析出来的流程生成授权文件,测试成功。

 

技术难点:授权文件分3部分,1、未作加密部分(5字节)

2、对下面证书信息hash+ 机器码

3、证书信息(如授权单位、供应商单位、系统类型、 润乾服务电话、润乾单位名称)

          其中 23、部分内容分别作RSA 公钥加密。Class文件中存放有公钥,但   是没有私钥,这就要求找到合适的RSA公私钥对,用自己的私钥加密明文   授权文件,把原来软件中的公钥(ne)替换成我们自己的公钥。替换公钥       需要修改class二进制文件,需要保证class文件结构不被破坏。


1、查找程序入口,下图中类为入口函数。


查看函数可知public static void loadConfig(ServletContext paramServletContext, String paramString, Context paramContext, boolean paramBoolean)为检测授权文件入口点。




下图为loadConfig 方法中读取授权文件内容到揭秘以后放入把各字段放入ExtCellSet 类中。





2、查找解析授权文件流程,ExtCellSet.get()  下图读取授权文件代码。


 

按字节读取授权文件,并进行解密,验证MD5 等工作。



查找关键代码

已经省略了MD5验证,明文格式转换等细节问题,最关键的就是这处公钥加密算法,用自己的公钥(ne)替换图中的公钥。


3、授权文件结构解析。下图为我自己机器生成的授权文件,即各段信息的解析



防破解建议方案的话,目前也没有更好的,将加密逻辑用c++编写,这样破解者只能分析二进制,进行修改代价比较大。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1294次
    • 积分:50
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档