是否可以从 .apk 文件中获取 Android.mk 或本机源文件?

Jie*_*ang 3 security android decompiling native-code android-ndk

从 .apk 文件中获取 Java 源文件似乎很容易。但是是否可以通过工具或棘手的方法从 .apk 文件中获取Android.mk本机源文件?

我正在研究 Android 应用程序本机代码安全性,因此这些文件对我来说非常重要。谢谢。

Lei*_*sen 5

您无法从 apk 获取 Android.mk,它仅用于构建,因此,它不会存储在那里(除非程序员将它放在 res/ 文件夹或类似的文件夹中)。

应用程序的所有本机代码都存储在 apk 根目录的 libs/ 目录中。它是编译的 ARM 或 x86 代码,或两者兼而有之。您可以在 libs/architecture_type/lib_name.so 中找到它。您可以使用 objdump 或 gdb 反汇编代码。反编译是一项艰巨的任务,但您可以找到一些可能适合您的软件。

编辑:我注意到您似乎担心人们对您的代码进行逆向工程。防止有人对您的代码进行逆向工程的唯一可靠方法是首先不要编写它。但是,您可以做一些事情来让人们感到困难,但是足够坚持的人可以绕过它。

  • 我并不担心我的应用程序被逆向工程,但实际上我正在尝试对他人的应用程序进行逆向工程,目的是研究 Android 应用程序本机代码安全性。非常感谢! (2认同)