现在,我知道...
Anything can be reverse engineered, given enough time and resources.
但是,是否可以使用 GCJ 之类的工具将您的 Java 代码编译为 native 代码?使反编译更困难?我的意思是,给我几分钟时间,我可以使用 JD-GUI 反编译一个 .jar ,而且比较准确。大多数“Java 到 EXE”转换器只是 JVM 的 .exe 启动器,虽然 JVM 有很多好处,但我一直相信源代码的安全性不是其中之一。
底线:您能否使用 GCJ 之类的工具将您的 Java 源(或 .class)文件编译为 native 机器代码,如果可以,是否可以保护它免于反编译?
编辑:理想情况下,这不仅仅是混淆。具体的项目是一个商业游戏,所以我们正在寻找一种方法,使从一开始就更难获得源代码,而不仅仅是理解它。另外,我不确定 Steam 是否接受 .jars,我们正计划将其提交到新的 Green Light。项目。
最佳答案
我不会仅仅为了源代码安全而选择这种方法。
查看一些混淆器 工具,例如 ProGuard
如果你想看看这些工具对你的源代码做了什么,只要手头有一个反编译的 Minecraft jar 就可以尝试阅读。
使用它的一个缺点是,如果您的代码依赖于使用反射,您将必须配置工具以忽略那些函数/类/任何东西,因为在否则运行时。
关于java - 将 Java 编译为 native 代码是否会保护源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204235/