【发布时间】:2012-07-26 18:22:37
【问题描述】:
我需要防止 jar/war/ear 文件,我们会将这些文件提供给客户端,并且不希望客户端出于任何原因对文件进行逆向工程。直到他要求我们。
请任何人提供一些建议或有任何 api 来实现这个吗?
【问题讨论】:
我需要防止 jar/war/ear 文件,我们会将这些文件提供给客户端,并且不希望客户端出于任何原因对文件进行逆向工程。直到他要求我们。
请任何人提供一些建议或有任何 api 来实现这个吗?
【问题讨论】:
使用obfuscation tools 让它变得更难一些
【讨论】:
虽然我自己没有使用过,但我听说很多人提到ProGuard 是一个很好的解决方案。
【讨论】:
如果
那么一种可能的解决方案是 Exelcior Jet。我长期以来一直在使用他们的专业版来开发桌面应用程序,但他们的企业版也适用于 Web 应用程序。
编辑:像 ProGuard 这样的混淆工具有助于使逆向工程变得困难(通过更改方法和类的名称),但仍然只需要一些努力和知识来翻译回代码。但是,如果你编译成原生代码,那么逆向工程是非常困难的。此外,您不需要在客户端机器上安装 Java 运行时(目前这对您来说当然不是问题)。 Excelsior Jet 是一种将 Java 代码编译为本机代码的工具。它有点贵,例如他们的企业版需要 1500 美元,但对于某些项目来说,这是值得的。它们有不同的版本可以编译为 Windows 本机代码和 Linux 本机代码。 Excelsior Jet 的本机代码也可以针对不同的变量进行优化,例如内存、占用空间和分布大小等等。
总结:与混淆工具相比,通过编译为本机代码,逆向工程可能变得极其困难和昂贵。
【讨论】: