Android反编译
参考
https://blog.csdn.net/fengyuzhengfan/article/details/80286704
思路
ApkTool
解压apk
文件dex
:它是 classes 文件通过 DEX 编译后的文件格式,用于在 Dalvik 虚拟机上运行的主要代码部分resources
:以 resources 以及 res 目录为代表的 Android 程序中所需要的一些资源,如图片资源,颜色资源,字符串,布局等assets
:assets 目录下存放的是原生资源文件,比如在里面存放字体,铃声等manifest
:以 AndroidManifest.xml 为代表的 Android 清单文件,清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码
- 查看工具—— ApkTool、dex2jar、JD-GUI
ApkTool
:是一款应用在 Apk 上的逆向工程的工具,它有编译、反编译、签名等功能,在这篇文章中会讲解如何利用 ApkTool 查看 apk 的 xml 文件、AndroidManifest.xml 和图片等dex2jar
:顾名思义,这款工具的作用主要是将 dex 文件转换成 jar 文件,转换成 jar 后我们才好借助 JD-GUI 来查看反编译 dex 后的代码JD-GUI
:一款 Java 反编译器 GUI,通过它我们能查看到反编译后的 dex 的代码,通常需要配合 dex2jar 使用
ApkTool
https://ibotpeaches.github.io/Apktool/install/
安装
ApkTool
将下载好的 apktool 文件与 apktool_2.3.1.jar 文件准备好,并将 apktool_2.3.1.jar 更名为 apktool.jar;
将 apktool.jar 与 apktool 移动到 /usr/local/bin 目录下 (可以通过在终端中输出命令 open /usr/local/bin 来打开这个目录);
为上述两个文件增加可执行权限,即在终端中输入并执行:
1
2
3
4chmod +x apktool.jar
chmod +x apktool
#在终端输入 apktool 看是否可以运行,如果不可以需要在系统偏好设置中打开安全与隐私中点击仍要运行 apktool.jar
使用-解压
apk
文件1
apktool d xxx.apk //该命令执行后会在同级目录下生成一个与你编译的apk同名的目录
dex2jar
https://sourceforge.net/projects/dex2jar/files/
1 | dex2jar 解压 |
问题Permission denied d2j_invoke.sh
为 d2j_invoke.sh 增加权限:
1 | sudo chmod +x d2j_invoke.sh //sudo chmod +取消权限 |
JD-GUI
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王文哲的博客!