最近群里有人问如何在mac下进行apk反编译,我也没试过,以前都是在windows下进行反编译的,windows下很简单,有许多比较好的集成工具,如apkide(改之理),不过我猜mac下应该和windows下差不多,趁着嗑瓜子的功夫,我研究了下mac下如何进行apk反编译,其实和windows下是一样,我在这里记录了下:

第一步:下载反编译工具集,apktool、dex2jar、jd-gui,最后我会上传这些工具,解压后如下图:

下面那个弹出框是JD-GUI的,用来将字节码反编译成java源文件用的

第二步,工具集准备好之后还不能进行反编译,你在命令窗口下执行输入apktool 会提示命令不存在,需要配置一下环境变量

,怎么配置呢,如下命令:

1.打开命令窗口,cd /usr/local/bin下,可能有的mac电脑不存在bin这个目录,直接在创建一个就好了,命令是:sudo mkdir bin,执行后会让你输入root权限密码,输入完后执行ls命令查看,bin目录就存在了,如图:

2.将你解压后的apktool文件夹下的三个文件aapt、apktool、apktool.jar 复制到/usr/local/bin/目录下,怎么复制呢,当然用命令cp了,如下图:

复制多个文件用空格隔开,android-workspace/APK/apktool/目录是源目录,存放的是我们要复制的那三个文件,执行命令后,提示输入密码,输完密码后就复制成功了,ls查看一下,这三个文件已经存在了。

这时候就已经配置好环境变量PATH了,什么,我怎么没看到和PATH有关的任何命令,其实,/usr/local/bin本来就在PATH下,不信我执行命令你看:

这也是我们把apktool3个文件放在/usr/local/bin下的原因,现在你再输入apktool命令试试:

输出这样的命令就代表环境配置好了

第三步:开始进行反编译了,其实用到的命令也很简单,我们随便拿一个apk来,例如:

我们要对dz-android.apk进行反编译,命令行进入这个目录 cd /Users/hailonghan/android-workspace/APK,到这个目录后,

执行命令apktool d dz-android.apk,如下图:

执行成功后,会在当前目录下生成一个da-android文件夹,点击去就看到相关apk的资源文件了,选中AndroidManifest.xml,然后空格键,就可以看到反编译后的内容了:

第四步:反编译java源文件

这就用到dex2jar和jd-gui了,将dz-android.apk重命名改成dz-android.zip,然后利用解压缩软件解压,得到一个dz-android目录,我们要拿到里面的classes.dex文件,如图:

将其复制到dex2jar-0.0.9.15目录下,如图:

然后执行命令:sh dex2jar.sh classes.dex,如图:

执行成功后会生成一个classes_dex2jar.jar文件,如图:

最后,用jd-gui工具打开这个jar包就可以看到java源代码了,如图:

(转)Android-Mac电脑如何进行APK反编译-使用apktool、jd-gui的更多相关文章

  1. 一个APK反编译利器Apktool

    一个APK反编译利器Apktool   APK 本地化 [http://www.andmoto.com/viewthread.php?tid=3873]   说起APK的汉化,目前大部分教程都是让用H ...

  2. Android APK反编译:APKtool使用详解

    导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取. 第一步. ...

  3. apk反编译工具-apktool

    apk很easy被反编译,关于这篇文章apktool反编译工具. (一)优势反编译 1.能学习别人优秀代码 看看优秀apk他们的string.color命名规则,看看布局排版等都能学习到东西. 2.进 ...

  4. CENTOS 下安装APK反编译工具 APKTOOL

    转于:http://www.qiansw.com/centos-apk-apktool.html 我使用的是CentOS6.4 64位的系统.首先需要下载两个包.这里下载:https://code.g ...

  5. Mac下对Android apk反编译

    在Mac上进行反编译apk,需要三个工具,分别为(附下载地址): apktool,下载Mac版 作用:资源文件获取,能够提取出图片文件和布局文件进行使用查看 dex2jar,下载最新的即可,目前是2. ...

  6. Android反编译,apk反编译技术总结

    1.谷歌提供的工具:android-classyshark 下载地址:https://github.com/google/android-classyshark/releases,下载下来之后是一个可 ...

  7. Android开发学习总结(六)—— APK反编译

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  8. Android开发学习总结(六)—— APK反编译(转)

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  9. 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译

    反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...

随机推荐

  1. Spring AOP配置文件

    在<aop:config>...</aop:config>报错: Multiple annotations found at this line: - cvc-complex- ...

  2. 转 关于C#中派生类调用基类构造函数的理解

    关于C#中派生类调用基类构造函数的理解 .c#class       本文中的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.  当基类中没有自己编写构造函数时,派生类默认的调用 ...

  3. POJ 3259 Wormholes (Bellman_ford算法)

    题目链接:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

  4. 关于Ajax知识点小节

    URL:统一资源定位符 网络的七层协议:网卡 驱动  网络层(ip)  传输层(tcp udp) 会话层( )  应用层(http.) restful表征状态转移(一种表征架构) CURD 增删改查 ...

  5. Prim求解最小生成树

    #include "ljjz.h" typedef struct edgedata /*用于保存最小生成树的边类型定义*/ { int beg,en; /*beg,en是边顶点序号 ...

  6. leetcode 141. Linked List Cycle ----- java

    Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...

  7. Kernel panic - not syncing: Attempted to kill init

    解决方法:系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/log ...

  8. 骑士问题(knight) (BFS)

    题目描述 在一个标准8×8的国际象棋棋盘上,棋盘中有些格子可能是有障碍物的.已知骑士的初始位置和目标位置,你的任务是计算出骑士最少需要多少步可以从初始位置到达目标位置.有障碍物的格子当然不可以到达. ...

  9. 【BZOJ2013】【JSOI2008】球形空间产生器

    看chty代码 原题: BZOJ挂了--等好了补上题面 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这 ...

  10. 【NOI2011】【P1308】道路修建

    这题也太水了吧,为什么不是我这届的NOI(╯‵□′)╯︵┻━┻ 原题: 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是每个国家的国王都 ...