Mac系统下Android Apk反编译

2017-05-27  本文已影响133人  df661d1e16ba

Apk反编译需要3个工具,对应三个步骤:

工具下载

apktool下载以及安装说明地址:
http://ibotpeaches.github.io/Apktool/install/
dex2jar下载地址:
http://sourceforge.net/projects/dex2jar/
jdgui下载地址:
http://jd.benow.ca/
Luyten下载地址:
http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/Luyten.shtml

反编译资源文件

资源文件使用apktool工具反编译,apktools安装说明:

apktools安装说明

以mac系统为例,

  1. 首先右击wrapper script,连接另存为apktool文件。
  2. 下载apktool-2,将下载后的文件重命名为apktool.jar
  3. 将apktool和apktool.jar文件移动到/usr/local/bin文件夹中

默认情况下环境变量已配置好,可在终端直接执行apktool命令测试是否配置成功,配置成功后,执行apktool会出现以下提示:

apktool安装成功

这里我新建了一个android项目,打包apk后放在~/works/test.apk
打开终端,定位到works文件夹:
cd ~/works
执行apktool d test.apk
执行完成后,会生成test文件夹,里面可以看到app的资源文件,如图片、xml等,但是源代码是smali文件,仍然不能查看。

反编译出的资源文件

反编译java代码

dex2jar下载解压后内容如下:mac系统下,我们只执行其中的dex2jar.sh文件

dex2jar解压目录

将apk使用解压缩工具解压(这里用的是The Unarchiver,App Store中可下载,Windows用户用WinRAR等解压缩工具即可),结构如下:

apk解压后目录结构

打开终端,定位到此文件夹中,因为dex2jar并没有配置环境变量,我们直接以绝对路径执行命令:
~/tools/dex2jar-0.0.9.15/d2j-dex2jar.sh classes.dex
执行完毕,出现classes-dex2jar.jar文件。

反编译出classes-dex2jar.jar文件

查看java代码

将这个jar文件拖动到jdgui中,就可以看到java源码了

使用gui工具查看代码

而个别的情况下,一些java文件用jdgui无法打开,可以再试试用Luyten打开

上一篇下一篇

猜你喜欢

热点阅读