https://www.bilibili.com/video/BV1EK4y137oC?t=2
使用 Protector4J 2.x 加密和保护 Java 应用程序,比混淆更好的解决方案,提供最好的兼容性和保护。
1
Cbdy 2021-06-14 10:46:37 +08:00 via Android
不过我现在用 graalvm aot 了,直接编译成 native 的二进制
|
2
vlinx OP @Cbdy AOT 的也可以直接破解和提取,特别是使用了框架的,请参考这篇文章:
https://3keys.medium.com/extract-java-classes-information-from-aot-compiled-binary-file-9cbab86f3a15 |
3
vlinx OP Medium 如果打不开,可以直接访问 github, https://github.com/3-keys/binary-classfile-reader
|
4
Cbdy 2021-06-14 13:27:42 +08:00 via Android
@vlinx 他是用了 Spring Native 吧,Spring 大量依赖了反射,所以把类都打到了 native image 里面,一般没有这个问题
|
5
kaneg 2021-06-14 20:32:00 +08:00
只要最底层还是基于 JVM 的,加密最坏都是有办法从 JVM 层来破解的。而唯有基于 AOT 技术将 Java 代码真正转换为二进制,使之与 C 编译后的二进制毫无差别,才能真正杜绝代码级别的泄露。至于将 C 程序从汇编的角度被破解则是另一回事,因为已经不是原始代码逻辑的直接泄露了。
|