license文件JAVA逆向记录

查看 105|回复 11
作者:cq5868177   
记录一款软件授权信息逆向的过程,这个软件是先在网上找的PJ包,但是PJ包与我的软件版本不一致所以用不了。
然后我就尝试根据现有PJ包的明文授权文件自己逆向。


1.png (62.79 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

把授权文件放到对应的目录打开软件,提示授权文件解析错误。EXE拖入IDA先看看,发现有JAVA相关的字符串


2.png (47.2 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



3.png (146.24 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

用IDA导入JNI.h,大体看了下流程,应该就是创建JVM虚拟机载入classloader然后加载所需class启动JAVA程序。


4.png (61.43 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



5.png (106.62 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

OD调试起来,在sub_CA3CA0看到了ZIP相关的CLASS,以及DefineClass函数


6.png (107.67 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



7.png (91.05 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



8.png (100.21 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

OD中看下这个DefineClass加载的是bootloader,这个loader 解密加载了其他JAR


9.png (62.7 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



10.png (195.61 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

把JAR DUMP 出来 可以看到里面有个Activator类。Activator类里面就是解析授权文件的。


11.png (73.32 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传



12.png (259.38 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

可以看到构造函数里面有X509Certificate 验证,而我下载的PJ包授权文件是明文的
所以这里我们把X509Certificate相关的直接删除掉,然后读取授权文件方式直接换成properties,这样就可以直接解析成功了


13.png (211.01 KB, 下载次数: 0)
下载附件
2022-11-17 15:52 上传

改完后发现还是报错,花了些时间调试了下,发现plugin目录中的launcherJAR包加载Activator签名不通过导致的,需要把这里的getSigners以及这个包中JAdapter类findHook()中的getSigners去掉就OK了


14.png (209.62 KB, 下载次数: 0)
下载附件
2022-11-17 15:52 上传



15.png (164.35 KB, 下载次数: 0)
下载附件
2022-11-17 15:52 上传

最后修改CLASS替换试一下,启动成功了,可以正常进入软件了


16.png (41.59 KB, 下载次数: 0)
下载附件
2022-11-17 15:51 上传

下载次数, 下载附件

cq5868177
OP
  


7025 发表于 2022-11-17 21:55
这个还需要根据license信息导入数据库,光启动也没法用,这个是老版本了 基本上用的少了

license 版本间是通用的,里面只是配置品牌信息
ZXH888   

楼主新年好呀,小弟假期中无趣按照您的帖子想练练手,按照您的指引我获取到了BootLoader.class. 但是您所说的dump JAR是如何操作的呢?还望大佬指点一下
guyuelintian   

学习了这纯纯的是干货
niceboge   

真是太牛啦,好好学习一下,感谢分享。
yangand   

DUMP JAR包的过程能不能详细点
我为52pojie狂   

收藏了,准备依葫芦画瓢操作一番。
bestwars   

这纯纯的是干货感谢分享
LHL511022   

教程很好,学到了有用的知识。本人小白一个,继续努力!
kevinchenyuan   

好好学习一下,感谢分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部