【问题标题】:Encrypting War files加密战争文件
【发布时间】:2009-07-23 23:14:54
【问题描述】:

我想加密或混淆我的 WAR 文件,以便逆向工程需要更多的努力。是否有这样的工具或 maven 插件可以加密 WAR 文件及其内容?

另外,一旦 WAR 被加密,那么 Web 应用程序将如何部署?如果web服务器爆了WAR,每个jar和资源还能被加密吗,怎么修改启动行为来解密嵌套的jar和资源?

谢谢, 沃尔特

【问题讨论】:

  • 为什么要这样做?如果有人对您的代码感兴趣,他无论如何都可以重建它,只要他访问二进制文件(在这种情况下是一场战争)。在 Java 中这尤其简单,但对 C 也是可能的。对您的代码感兴趣的可能只有开发人员,他们不费吹灰之力就能获得所需的知识。因此,混淆代码的额外努力可能只能抵御极少数黑客。我看不到好处。
  • +1 表示@Mnementh 的 cmets。这里的目标是什么?您正在服务器端的 Web 应用程序容器(例如 Tomcat)中部署您的战争。 Web 客户端将无法访问它。
  • 我不担心人们在 Firefox 或其他什么中查看该网站,但系统上的其他人或者如果为客户开发网站并使用他们的服务器,我可能希望也可能不希望他们轻松访问源代码。
  • 我想最好的解决方案是使用私人托管。
  • @WalterWhite Walter,我正试图弄清楚同样的事情(如何避免客户看到源代码)。除了私人托管之外,您能想出一个不错的解决方案吗?

标签: java security encryption


【解决方案1】:

来自 PreEmptive Solutions 的DashO 也会混淆 WAR 文件。

【讨论】:

  • 您能告诉我该怎么做吗?
【解决方案2】:

Cracking Java byte-code encryption - Why Java obfuscation schemes based on byte-code encryption won't work - 来自 JavaWorld 的文章。

如果您的代码重要到足以解决所有这些问题,那么将其托管在私有服务器上可能是有意义的...:\

【讨论】:

  • 私人托管似乎是最好的选择
  • 您的链接显示“找不到页面”。可能是所有者删除了这篇文章
【解决方案3】:

Zelix KlassMaster 可以从 Ant 运行。看起来它也可以处理WARs

无法告诉您有关 WAR 的部署,但任何会导致存档在被混淆后无法工作的混淆器都没有多大价值。

【讨论】:

    【解决方案4】:

    我在这里也有同样的问题。 我尝试使用 Yguard 2.4、Proguard 4.7、Zelix 5.4.6、Allatori 4.0、JavaGuard 1.0、Sandmark 3.40。所有这些都没有让我看到我的混淆 Web 应用程序无法运行。他们可以混淆字节码,即使他们可以混淆我的应用程序。仅此而已。

    p.s : 应用服务器(服务器容器 tomcat、apache、glassfish、weblogic、websphere 等)无法向黑客隐藏我们的代码。以我的经验,他们都有临时文件夹,其中包含当前使用的项目。在这个文件夹中我们可以看到代码。

    最后我想说,如果我们使用 Java,那么我们就会开源。 :P

    【讨论】:

      【解决方案5】:

      我有办法解决这个问题。它是这样的:

      加密战争文件。喜欢ZIP并加密,所以没有密码就无法读取。

      设置系统,或仅将密码提供给托管服务。一旦你和一个客户 已经制定了您的条款,您将密码提供给托管服务。他们解密 war 文件并安装它。他们的客户只看到网站/api。客户从来没有 访问您的 jar 文件。

      有没有cmets?

      【讨论】:

        猜你喜欢
        • 2018-11-03
        • 2017-09-18
        • 2019-09-26
        • 1970-01-01
        • 1970-01-01
        • 2013-09-14
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多