我相信SO上的很多读者都使用Lutz Roeder的.NET反射器来反编译他们的.NET代码.我很惊讶我们的源代码可以从编译的程序集中重新编译.
我有兴趣听听你们中有多少人使用混淆,以及使用什么类型的产品?
我确信这是一个更重要的问题,例如,您提供的通过互联网下载的.NET应用程序,而不是针对特定客户端定制的内容.
我们将模糊我们的项目,但不想失去远程调试和hotswapping的能力.
可能吗?哪些工具可以处理这个?我对简单的混淆感到满意 - 只需重命名类/方法/变量.
[已编辑]我们正在使用Intellij IDEA,但无法为此任务找到任何插件.
现在,我知道......
如果有足够的时间和资源,任何东西都可以进行逆向工程.
但是,使用像GCJ这样的工具将Java代码编译为本机代码会使反编译变得更加困难吗?我的意思是,只需几分钟,我就可以使用JD-GUI对.jar进行反编译,而且相对准确.大多数"Java to EXE"转换器只是JVM的.exe启动器,虽然JVM有许多好处,但我一直认为源代码的安全性不是其中之一.
结论:您可以使用类似GCJ的东西将Java源(或.class)文件编译为本机机器代码,如果是这样,是否会保护它免于反编译?
编辑:理想情况下,它不仅仅是混淆.具体的项目是一个商业游戏,所以我们正在寻找的方法是让开始时更难以获得源代码,而不仅仅是了解它.此外,我不确定Steam是否接受.jars,我们正计划将其提交给新的Green Light项目.
可能重复:
您是否混淆了商业Java代码?
除了其他混淆之外还有什么方法可以保护罐子不被其他人打开?问题是我不希望任何人访问代码,这就是我不喜欢Java的原因.从我使用的反编译器开始,用C#和Java编写的程序就像变量的名称一样完整,这样可以很容易地访问不是免费的程序.更糟糕的是,给出源代码.