我最近在用JavaFX做个商业客户端,领导提出了个安全问题,说java代码不混淆不相当于裸奔了。
我想了想确实是这样,我尝试以下方法:
- 一开始本来是尝试用了graalvm,但是配置太复杂了,我让claudecode配置了几天了,打出来的原生包要么无法运行、要么压根打包都打不成。好不容易打包成功了能运行了放到别人的电脑上又打不开了。而且还需要能在Ubuntu上运行,情况也是一样,根本一次能成功运行的都没有。都是些JNI的错误或者版本兼容问题。太耗心力了我就放弃了。
- Windows上有个exe4j能直接把jar打包成exe,外置一个jre。这个方法倒是也行,稍微增加了点反编译的难度。但是exe4j又只能打包exe。没办法打包Linux系统的可执行文件。
- 我又尝试install4j,我发现他只是打包了一个安装包,安装完成后exe或者Linux的可执行文件只是一个启动jar包的快捷方式。。没办法说把jar包打进exe或可执行文件中。
- 我又尝试了ProGuard混淆,也把包结构打散了,但是感觉其实只是变量名类名之类的被混淆了,整体代码结构还是一目了然。。不知道是不是我用的不对,总感觉混淆强度太低。
- 然后也尝试了 Java的Jar包防止反编译的方案大家都用的什么? - #26,来自 xmail 这个帖子里佬友讲的 mjar-java,我看加密后确实class文件打不开了。但是整个加密完后无法运行了,入口类都找不到了。。感觉是javafx的一些东西和加密工具不太兼容?有知道的佬友可以指导一下。
- 然后也看到佬友在推荐ZKM,但是收费
没这个预算。我看好心的佬友Java的Jar包防止反编译的方案大家都用的什么? - #31,来自 LSCND 发了21版的破解,但是下载完发现有压缩包密码。。。有没有佬友有ZKM的资源可以分享一下么。。。
各位佬友有没有有没有其他推荐或者对于以上6点有补充的可以分享一下。感谢!!!
12 个帖子 - 6 位参与者