使用 proguard 尝试了进行混淆,费了好大力气终于弄好了,反编译也看不出原始代码。但是实际运行的时候就报错了。启动的时候找不到方法,估计是混淆导致的。关于 Javafx 还有什么好的混淆方案呢?
1
Chinsung 40 天前
java 写的到字节码层面执行,还是挺难把混淆做的很彻底的吧
感觉不如核心逻辑直接用 JNI 去写 |
2
cJ8SxGOWRH0LSelC 40 天前
放弃吧, 不要浪费精力了, 就算你混淆的再完美, 也只不过看起来麻烦一点, 真想研究你的逻辑, 而是轻轻松松。
|
3
Geekerstar OP |
4
gam2046 40 天前
>> 实际运行的时候就报错
这通常是由于程序中使用反射导致的,proguard 并不知道哪些类、方法、属性被通过反射引用,因此需要你手动 keep 一部分。 通常来说一些库的作者会告诉你哪些需要被 keep ,当然笨办法可以每次运行的时候,基本提示的应该是 class not found 一类的,把对应的 class ,或者索性它所在的整个 package 都 keep 住,反复多运行几次,就行了。 |
5
Geekerstar OP @gam2046 对,应该是这个原因,感谢。
|
6
dimwoodxi27 39 天前
没办法直译,永远都是开源;运行还得带个 jre ,混淆反而影响性能和各种报错,fx 写跨平台 gui 真感觉性能体积连 go 的 gui 都不如
|
7
Nitsuya 39 天前
GluonFx Native, 不过挺麻烦的.
|