0

我需要防止 jar/war/ear 文件,我们会将这些文件提供给客户端,并且不希望客户端出于任何原因对文件进行逆向工程。直到他要求我们。

请任何人提供一些建议或是否有任何 api 来实现这一点?

4

3 回答 3

4

使用混淆 工具使其变得更加困难

于 2012-07-26T18:23:14.773 回答
1

虽然我自己没有使用过它,但我听说很多人提到ProGuard是一个很好的解决方案。

于 2012-07-26T18:38:09.903 回答
0

如果

  1. 您不需要完全符合 Java EE 并且可以使用 Tomcat
  2. 编译为本机代码

那么一种可能的解决方案是 Exelcior Jet。我长期以来一直在使用他们的专业版来开发桌面应用程序,但他们的企业版也适用于 Web 应用程序。

http://www.excelsiorjet.com/

编辑:像 ProGuard 这样的混淆工具有助于使逆向工程变得困难(通过更改方法和类的名称),但仍然只需要一些努力和知识来翻译回代码。但是,如果你编译成原生代码,那么逆向工程是极其困难的。此外,您不需要在客户端机器上安装 Java 运行时(目前这对您来说当然不是问题)。Excelsior Jet 是一种将 Java 代码编译为本机代码的工具。它的企业版有点贵,例如 1500 美元,但对于某些项目来说,这是值得的。它们有不同的版本可以编译为 Windows 本机代码以及 Linux 本机代码。Excelsior Jet 的本机代码也可以针对不同的变量进行优化,例如内存、占用空间和分布大小等等。

Summary: By compiling to native code, reverse engineering can be made extremely difficult and costly as compared to obfuscation tools.

于 2015-09-24T08:37:58.227 回答