对 Android 原生代码进行逆向工程

逆向工程 拆卸 反编译 部件 调试器 安卓
2021-06-29 06:42:31

我正在寻找一种逆向工程工具或一种将现有 android 本机代码反编译为人类可理解格式而不是汇编语言的方法。任何人都可以建议我,因为我需要取消阻止我的一项优先任务。

提前致谢。

3个回答

ida pro + hexrays for arm。

IDAPro 是适用于许多处理器和文件类型的最佳反汇编工具。HexRays ARM - IDAPro 插件(不能单独工作),它试图将汇编器反编译为类似 C 的源代码

都不是免费的

https://www.hex-rays.com/index.shtml

获取 Android NDK并解压。使用objdump方法如下:

android-ndk-r9d\toolchains\arm-linux-androideabi-4.6\prebuilt\windows-x86_64\arm-linux-androideabi\bin\objdump.exe -d libinquestion_jni.so > libinquestion_jni.txt 

在尝试不同的反汇编程序时,我发现它们无法解码每个字节序列,更糟糕的是,它们可以以错误的方式解码,让您想知道它是如何工作的。不同的 ARM 有不同的指令集,并为它们使用重叠的字节编码。objdump来自 Android NDK 是 Android 产品中使用的 CPU 的完美匹配,而且它是免费的。

最简单的方法是先将 APK 转成 jar 文件,然后使用您喜欢的 java 反编译器(例如jd-gui反编译代码

dex2jar拥有更好地呈现 Android 应用程序所需的一切。甚至还有一个用户指南,可以准确解释您需要做什么。