Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将模糊的Android dex/jar文件反编译为Java源代码_Java_Reverse Engineering_Decompiling_Decompiler_Deobfuscation - Fatal编程技术网

将模糊的Android dex/jar文件反编译为Java源代码

将模糊的Android dex/jar文件反编译为Java源代码,java,reverse-engineering,decompiling,decompiler,deobfuscation,Java,Reverse Engineering,Decompiling,Decompiler,Deobfuscation,有没有办法将模糊的dex/jar文件反编译成Java源代码?我有一个APK,里面没有classes.dex文件,但是我有一个odex文件。我曾尝试使用oat2dex和dex2jar来获取dex/jar文件,然后使用一些反编译器来获取Java源代码,但我要么在某些部分出现错误,要么因为代码混乱而很难读取 这是我试过的 JD-GUI(首先我尝试了完成反编译,但出现了多个错误) 蕨类植物(无法完成) Procyon(相当好,但有一些错误) CFR(更好,但有一些错误) Jadx(最好,错误最少,但代

有没有办法将模糊的dex/jar文件反编译成Java源代码?我有一个APK,里面没有classes.dex文件,但是我有一个odex文件。我曾尝试使用oat2dex和dex2jar来获取dex/jar文件,然后使用一些反编译器来获取Java源代码,但我要么在某些部分出现错误,要么因为代码混乱而很难读取

这是我试过的

  • JD-GUI(首先我尝试了完成反编译,但出现了多个错误)
  • 蕨类植物(无法完成)
  • Procyon(相当好,但有一些错误)
  • CFR(更好,但有一些错误)
  • Jadx(最好,错误最少,但代码仍然模糊且难以阅读,多个类/方法具有相同的随机名称)

我能做些什么来获得更具可读性的代码?

没有任何神奇的工具可以将所有模糊的代码重构成有意义的“干净”代码。模糊代码是模糊的:处理它


但是,您可以保存模糊的源代码,使用首选ide(支持重构)创建项目,手动分析函数和变量,并将它们重构为有意义的内容。这需要很多时间,但最终您将获得一个几乎干净的源代码。

为什么要反编译模糊的代码?使这变得困难是混淆工具的目的。如果有一个好的工具,我想人们会停止混淆他们的代码。所以我说没有解决方案是对的吗?Krakatau反编译器是专门为处理混淆代码而设计的。然而,并没有什么能神奇地修复乱七八糟的名称。要“修复”乱七八糟的名称,您必须使用DeobFousator程序(如Enigma)手动重新映射类。或者,如果您可以使用反编译器来获取源代码,那么您可以在IDE中完成这一切(但这样做需要更长的时间)。