license文件JAVA逆向记录
记录一款软件授权信息逆向的过程,这个软件是先在网上找的PJ包,但是PJ包与我的软件版本不一致所以用不了。然后我就尝试根据现有PJ包的明文授权文件自己逆向。
把授权文件放到对应的目录打开软件,提示授权文件解析错误。EXE拖入IDA先看看,发现有JAVA相关的字符串
用IDA导入JNI.h,大体看了下流程,应该就是创建JVM虚拟机载入classloader然后加载所需class启动JAVA程序。
OD调试起来,在sub_CA3CA0看到了ZIP相关的CLASS,以及DefineClass函数
OD中看下这个DefineClass加载的是bootloader,这个loader 解密加载了其他JAR
把JAR DUMP 出来 可以看到里面有个Activator类。Activator类里面就是解析授权文件的。
可以看到构造函数里面有X509Certificate 验证,而我下载的PJ包授权文件是明文的
所以这里我们把X509Certificate相关的直接删除掉,然后读取授权文件方式直接换成properties,这样就可以直接解析成功了
改完后发现还是报错,花了些时间调试了下,发现plugin目录中的launcherJAR包加载Activator签名不通过导致的,需要把这里的getSigners以及这个包中JAdapter类findHook()中的getSigners去掉就OK了
最后修改CLASS替换试一下,启动成功了,可以正常进入软件了
7025 发表于 2022-11-17 21:55
这个还需要根据license信息导入数据库,光启动也没法用,这个是老版本了 基本上用的少了
license 版本间是通用的,里面只是配置品牌信息 楼主新年好呀,小弟假期中无趣按照您的帖子想练练手,按照您的指引我获取到了BootLoader.class. 但是您所说的dump JAR是如何操作的呢?还望大佬指点一下{:1_893:}
学习了{:1_926:}这纯纯的是干货 真是太牛啦,好好学习一下,感谢分享。 DUMP JAR包的过程能不能详细点 收藏了,准备依葫芦画瓢操作一番。 这纯纯的是干货{:1_893:}感谢分享 教程很好,学到了有用的知识。本人小白一个,继续努力! 好好学习一下,感谢分享 {:1_921:}可以的,感谢分享 楼主厉害了。向你学习