预先感谢。
#1 楼
ida pro + hexrays for arm。IDAPro是适用于许多处理器和文件类型的最佳反汇编工具。
HexRays ARM-IDAPro的插件(无法单独工作),试图对汇编器进行反编译到类似C的源代码
都不都是免费的
https://www.hex-rays.com/index.shtml
评论
请通过链接和说明改善您的答案。
–天使
2013年12月16日上午8:05
#2 楼
获取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具有不同的指令集,并为其使用重叠的字节编码。来自Android NDK的
objdump
是Android产品中使用的CPU的完美匹配,并且是免费的。评论
是否可以将输出重新编译为ready .so文件?
– Arsen Zahray
2014年11月13日15:03
相对偏移量无法与整数区分开,因此这样做毫无意义。您将要生成相同的文件,或者将无法生成文件,因为反汇编程序无法使更改已编译的代码变得更加容易。我还没有完全估计转储,但是从我看来,它不应该按原样编译。未注释人类可读的注释,例如“ Dissection of .plt:”,因为它们应该在实际的汇编程序源中。
–OCTAGRAM
2014年11月14日6:15
#3 楼
最简单的方法是先将APK传输到jar文件中,然后使用您喜欢的java反编译器(例如jd-gui)对代码进行反编译。您的Android应用程序。甚至还有一份用户指南,准确解释了您需要做什么。评论
但是我正在寻找的应用程序是本机进程,而不是APK。本机进程是用C ++开发的
–msk
2013年12月19日下午2:30
dex2jar是否会反编译本机代码?
– IgorGanapolsky
16年11月1日在14:57
dex2jar不会反编译本机代码。它仅适用于托管Java代码。
–郝阮
17年7月7日在13:38
评论
谢谢Mialwl ..尽管它基于ARM,但我们也可以通过hex-rays获得Android的操作码。这是没有意义的。 Hex-rays是反编译器,它将为您提供类似C的代码(如果可行)。
您是指编译到APK中的.so文件吗?