【问题标题】:Java, Trouble with decompilerJava,反编译器的问题
【发布时间】:2012-03-16 03:40:56
【问题描述】:

我使用JD反编译器来反编译一个jar文件。 之后我有源代码。 但是,我认为它是被加密的! 我得到了一些名称,如“Cny3”、“JmcU”、“Ow0w”、“YrRb”、“Jhaa”、“gzL9”、.... 我可以使用任何软件或技术解密或获取课程名称吗? 感谢您的帮助。

【问题讨论】:

  • 由于加密不会神奇地使您的类和方法名称更短(更不用说将它们缩小到正好 4 个字符),您可以排除加密。如果部署了 CBC 模式加密,您会期望字符串的长度为 N * 8 或 N * 16 字节,而不是 4 字节。

标签: java class encryption decompiler


【解决方案1】:

代码没有加密,而是obfuscated(参见维基百科上的obfuscated code)。类和方法名称转换为唯一的随机字符串,使反编译代码的理解变得困难。无法逆转这种转变。

【讨论】:

    【解决方案2】:

    没有。来源可能被混淆了。

    【讨论】:

      【解决方案3】:

      (强调我的):

      我得到了 some 类,其名称类似于“Cny3”,

      如果大部分类有好名字,而只有几个难看的名字,那么我不会想到代码混淆。我认为一些字节码增强工具已经生成了一些内部类。或者可能是其他一些生成类的工具。

      可能涉及的工具:

      • AOP 工具通常可以在编译时进行编织。
      • 一切都带有 APT 编译器插件(注释处理工具)

      编辑 混淆工具通常也会尽可能加密实例字段和方法名称。它们长什么样子?

      【讨论】:

        猜你喜欢
        • 2018-10-04
        • 1970-01-01
        • 2014-01-15
        • 2023-03-31
        • 2014-08-28
        • 1970-01-01
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多