用于逆向工程android apk的工具有哪些?

逆向工程 安卓 apk
2021-06-22 02:47:08

目前,我只知道 apktool。

但是是否有任何工具可以帮助检查代码、编辑它并将其编译回 apk?

4个回答

有很多工具,有些是低级的,有些是建立在低级工具之上的,以制作更好、更完整的工具。

以下是我的最爱:

看起来也很有希望:

2019 年 11 月编辑

如果你想修改代码,那么我所知道的唯一真正的选择是bak/smali,它apktool提供了一个有用的包装器。

如果您只是想了解代码,那么有很多选择。例如,您可以使用Enjarify或 dex2jar 将其转换为 jar 文件,然后使用任何 Java 字节码工具或反编译器。还有一些具有原生 Android 支持的反编译器。

在桌面上

你可以试试 Antimony 的回答。

还要检查此评论(其中说明在 .dex 文件上使用 dex2jar 并在 jar 文件上使用 JD-GUI):

如果你想直接在手机上反编译一个apk show java是一个不错的选择。您可以只选择一个 apk 文件并等待。然后你可以得到应用程序的java源代码。虽然它有很多改进的空间,但它很方便。

当你遇到 JNI/NDK

您必须反编译.so文件lib夹中的文件。所以你可能要反编译它们,它们通常是arm linux共享库。

我目前正在开发一个辅助应用程序,可帮助您反编译针对 ARM 和 x86 的本机库以及其他 CPU 指令。

发布

Android-反汇编程序发布。

或者您可以访问git 存储库(Android-Disassembler)。

但是总的来说, 不幸的是,一些开发人员通过更改类、方法和变量的名称来阻止或使其难以反编译 apk 文件。因此,您可能会像许多倒车程序一样遇到困难。

无论如何,希望我的回答有所帮助。

GDA:支持 APK、DEX、ODEX 和 OAT 文件。Dalvik 字节码反编译器完全用 C++ 编写。所以,与大多数app分析工具不同,GDA不需要依赖Java平台,并且使用Bytecode直接翻译成Java代码,无需Smali代码翻译。所以它更简洁,更便携,速度更快。

https://github.com/charles2gan/GDA-android-reversing-Tool