美文网首页
Mac系统下Android Apk反编译

Mac系统下Android Apk反编译

作者: df661d1e16ba | 来源:发表于2017-05-27 14:54 被阅读133次

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

    • apktool:反编译apk中的资源文件
    • dex2jar:将apk中的classes.dex文件反编译成jar文件
    • jdgui:查看jar文件中的java代码,也可以使用Luyten

    工具下载

    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打开

    相关文章

      网友评论

          本文标题:Mac系统下Android Apk反编译

          本文链接:https://www.haomeiwen.com/subject/rodqfxtx.html