zoukankan      html  css  js  c++  java
  • Mac环境下反编译apk

    0,工具汇总

    我们反编译apk主要使用下面三个工具

    • apktool:用于获取资源文件
    • dex2jar:获取源文件jar包
    • JD-GUI:反编译源文件jar包查看源码
    找这些工具时折腾了我点时间。如今把我找到的终于可用的版本号都放百度云了。到以下链接下载:

    1,apktool获取资源文件


    apktool事实上不止一个文件,当中包括aapt,apktool。apktool.jar三个文件,




    终于我们调用的命令行都是apktool的,另外两个文件时其依赖的工具。将这三个文件复制到文件夹/usr/local/bin下,接下来就能够直接用命令行使用了apktool了。你能够这样检測检測效果



    接下来就能够開始反编译你的apk获取资源文件了,先使用命令行切换到你的apk的文件夹下,然后运行命令
    apktool d xxxx.apk
    最開始运行上面的命令,我遇到例如以下图的一个问题,网上也有人遇到过



    终于发现问题在于,apktool中三个文件的apktool.jar版本号太低,最后我下载了最新版替换过来。于是问题迎刃而解,终于执行效果例如以下



    上面命令正常运行之后。你会发如今当前文件夹会生成一个喝apk同名的文件夹,当中就包括了反编译产生的资源文件。apktool使用到此为止。


    2,dex2jar获取源文件jar包


    首先将你的apk文件改为zip文件格式。然后解压出来,当中会有一个classes.dex文件。接下来我们就是从这个文件里获取源文件。

    将classes.dex文件复制到你的dex2jar目录下,调用d2j-dex2jar.sh进行反编译,你能够能会遇到下面的问题




    在mac下遇到这个问题非经常见,用以下这个指令能够解决
    sudo chmod 777 d2j-jar2dex.sh
    d2j-jar2dex.sh可能还依赖于同文件夹中其它.sh文件,你可能须要为其它.sh文件运行上面的命令(我遇到当中的d2j_ivoke.sh也须要运行下面命令)。


    搞定上面的问题之后,就能真正開始反编译获取原文件了。使用下面命令

    ./d2j-dex2jar.sh classes.dex

    例如以下



    运行完命令后,当前文件夹会生成一个classes-dex2jar.jar文件,该jar包就是终于获得的源文件的jar包,我们就差最后一步。将jar包反编译获取java文件

    3,JD-GUI获取java源文件

    非常easy。你仅仅须要将上一步中生成的classes-dex2jar.jar在JD-GUI中打开就可以。一般我们能获取所有资源文件。如图片,布局文件。可是源文件时被混淆过的。


    以上。




  • 相关阅读:
    C语言指针强制类型转换
    iphone开发实现单选框
    深入研究java.lang.Runtime类
    hoj 1760 The jackpot一维
    人生最有趣味的事
    GAE 博客——B3log Solo 0.3.0 正式版发布了!
    “三国演义”何处去
    boost库中的智能指针向上转换
    GAE 博客——B3log Solo 0.3.5 正式版发布了!
    GAE 博客——B3log Solo 0.3.0 正式版发布了!
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6814705.html
Copyright © 2011-2022 走看看