目前,我只知道 apktool。
但是是否有任何工具可以帮助检查代码、编辑它并将其编译回 apk?
目前,我只知道 apktool。
但是是否有任何工具可以帮助检查代码、编辑它并将其编译回 apk?
有很多工具,有些是低级的,有些是建立在低级工具之上的,以制作更好、更完整的工具。
以下是我的最爱:
.dex
文件转换为文本.smali
类。手动解压APK后即可使用。更多信息:使用 baksmali 和 smali 重新打包 APK 文件看起来也很有希望:
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 指令。
发布
或者您可以访问git 存储库(Android-Disassembler)。
但是总的来说, 不幸的是,一些开发人员通过更改类、方法和变量的名称来阻止或使其难以反编译 apk 文件。因此,您可能会像许多倒车程序一样遇到困难。
无论如何,希望我的回答有所帮助。
GDA:支持 APK、DEX、ODEX 和 OAT 文件。Dalvik 字节码反编译器完全用 C++ 编写。所以,与大多数app分析工具不同,GDA不需要依赖Java平台,并且使用Bytecode直接翻译成Java代码,无需Smali代码翻译。所以它更简洁,更便携,速度更快。