11

是否有一个工具可以对 java 混淆代码进行反混淆?

这些代码是从编译的类中提取的,但它们是模糊的且不可读的。

4

6 回答 6

14

第一步是了解使用哪个工具对其进行了混淆。也许特定的混淆器周围已经有一个“反混淆器”。

另一方面,您也可以只运行一个 IDE 并使用它的重构能力。将类、方法和变量名重命名为敏感名称。使用您的人类逻辑思维能力来确定代码实际代表什么并敏感地命名它们。这幅画会缓慢但肯定地增长。

祝你好运。

于 2009-11-02T18:10:24.443 回答
9

您是否尝试使用Java Deobfuscator(又名 JDO)(一种智能反编译器)使代码不那么晦涩?

当前,JDO 执行以下操作:

  • 将混淆的方法、变量、常量和类名重命名为唯一且更能指示其类型
  • 在整个源代码树中传播更改(测试版)
  • 有一个易于使用的 GUI
  • 允许您指定字段、方法和类的名称(新功能!)

目前 JDO 不做以下事情(但可能有一天)

  • 以任何方式修改方法字节码
于 2009-11-02T18:44:04.967 回答
6

不要坟墓,但我写了一个适用于大多数商业混淆器的工具

https://github.com/Contra/JMD

于 2011-01-28T19:04:01.657 回答
5

我使用了 Java Deobfuscator(又名 JDO),但它有一些错误。它不适用于区分大小写的文件名。所以我已经更改了源并在 sourceforge 中上传了一个补丁。 补丁下载

于 2009-11-03T17:07:30.637 回答
1

很可能只有人类的智力才能理解它。获取可用的最佳反编译器并考虑其输出。

于 2009-11-02T19:09:34.753 回答
1

也许它可以在 Unix/Linux/MacOS 上运行?

如果是这样,您可以将流程的一个步骤移至 VM,在其中解压缩代码,然后重命名过长的名称。Windows 上的文件名限制是多长时间?

于 2012-06-24T08:08:22.860 回答