如何防止jar / war / ear文件的逆向工程

时间:2012-07-26 18:22:37

标签: java reverse-engineering

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

请有人提出一些建议或者有没有api来实现这个?

3 个答案:

答案 0 :(得分:4)

使用obfuscation tools使其变得更加困难

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果

  1. 您不需要完全符合Java EE并且可以使用Tomcat
  2. 编译为本机代码
  3. 然后一个可能的解决方案是Exelcior Jet。我长期以来一直在使用他们的专业版桌面应用程序,但他们的企业版也适用于Web应用程序。

    http://www.excelsiorjet.com/

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

    摘要:通过编译为本机代码,与混淆工具相比,逆向工程可能变得非常困难和昂贵。