将混淆的 Android dex/jar 文件反编译为 Java 源代码
Decompiling obfuscated Android dex/jar files into Java source code
有没有办法将混淆的 dex/jar 文件反编译为 Java 源代码?我的 APK 中没有 classes.dex 文件,但我有 odex 文件。我已经尝试使用 oat2dex 和 dex2jar 来获取 dex/jar 文件,然后使用一些反编译器来获取 Java 源代码,但我要么在某些部分出现错误,要么真的很难阅读代码,因为它被混淆了。
这是我试过的方法
- JD-GUI(第一次尝试反编译完成,但有多个错误)
- 蕨花(无法完成)
- Procyon(很好,但有一些错误)
- CFR(更好,但有一些错误)
- Jadx(最好,错误最少,但代码仍然模糊不清且难以阅读,多个 classes/methods 具有相同的随机名称)
我怎样做才能获得更具可读性的代码?
没有任何神奇的工具可以将您所有混淆的代码重构为有意义且 "clean" 的东西。混淆码被混淆了:处理一下
但是,您可以保存混淆后的源代码,使用您喜欢的 ide(支持重构)创建一个项目,然后手动分析函数和变量并将它们重构为有意义的东西。这需要很多时间,但最终您将获得几乎干净的源代码。
有没有办法将混淆的 dex/jar 文件反编译为 Java 源代码?我的 APK 中没有 classes.dex 文件,但我有 odex 文件。我已经尝试使用 oat2dex 和 dex2jar 来获取 dex/jar 文件,然后使用一些反编译器来获取 Java 源代码,但我要么在某些部分出现错误,要么真的很难阅读代码,因为它被混淆了。
这是我试过的方法
- JD-GUI(第一次尝试反编译完成,但有多个错误)
- 蕨花(无法完成)
- Procyon(很好,但有一些错误)
- CFR(更好,但有一些错误)
- Jadx(最好,错误最少,但代码仍然模糊不清且难以阅读,多个 classes/methods 具有相同的随机名称)
我怎样做才能获得更具可读性的代码?
没有任何神奇的工具可以将您所有混淆的代码重构为有意义且 "clean" 的东西。混淆码被混淆了:处理一下
但是,您可以保存混淆后的源代码,使用您喜欢的 ide(支持重构)创建一个项目,然后手动分析函数和变量并将它们重构为有意义的东西。这需要很多时间,但最终您将获得几乎干净的源代码。