mac环境下Android 反编译

一、需要的工具

apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。

dex2jar:将反编译后的classes.dex文件转化为.jar文件。

jd-gui:用于将.jar文件转换成java代码。

二、反编译步骤

第一步:使用apktool工具对APK进行反编译

1. 下载apktool:https://ibotpeaches.github.io/Apktool/install/

2.把下载好的apktool脚本和apktool.jar文件移动到 /usr/local/bin 文件夹下

3. 使用命令chmod +x 分别对apktool和apktool.jar文件进行提权

//先进入到/usr/local/bin文件夹下

cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar

4. 测试是否成功,终端输入apktool,若成功,如下图

5. 运行apoktool脚本进行反编译

①. 把你需要反编译的apk文件也复制到 /usr/local/bin 文件夹下,确保apktoolapktool.jar以及apk文件都在/usr/local/bin目录下
②. 终端输入命令 apktool d xxx.apk回车,等待执行完毕

//如果当前已在/usr/local/bin 目录下,忽略此步
cd /usr/local/bin //开始反编译目标APK文件
apktool d xxx.apk

③. 执行完毕后目录下会生成反编译apk的对应文件夹

但是我们在反编译apk后的文件夹里并没有看到classes.dex文件,这时候就需要在上述命令行添加-s,表示禁止将dex文件解码成smali

apktool d -s xxx.apk

第二步:使用dex2jar工具把classes.dex文件转化成.jar文件

1. 下载dex2jar并解压 :   https://sourceforge.net/projects/dex2jar/files/

2. 进入到你解压后的dex2jar文件夹下(根据你的实际情况文件夹位置不一样),如:

cd Downloads/dex2jar-2.0

3. 把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令sh d2j-dex2jar.sh classes.dex

sh d2j-dex2jar.sh classes.dex

3. 执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码

第三步:使用JD-GUI软件查看jar包下的java源码

1.下载并安装jd-gui    http://java-decompiler.github.io/
2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了

参考文档:https://www.jianshu.com/p/3a305f32c4a3

mac 环境下Android 反编译源码的更多相关文章

  1. MAC环境下 Android P 系统源码下载、编译、导入到AS、Pixel2xl刷机 实战

    一.下载源码 1 . 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 2 . 下载 Repo 工具,并确保它可执行: curl ...

  2. 【转】mac环境下Android 反编译

    一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes.dex文件转化为.jar文件. jd ...

  3. mac环境下Android 反编译

    连接地址: https://www.jianshu.com/p/3a305f32c4a3

  4. Windows 环境下于虚拟环境安装源码安装 cx_oracle

    安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...

  5. ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用

    转载请注明出处:http://blog.csdn.net/fightlei/article/details/52432161 最近在学习Android反编译的一些知识,虽然在网上搜到了很多相关的文章, ...

  6. Windows 环境下于虚拟环境中源码安装 cx_oracle

    安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...

  7. 在Mac OS 下 build Tesseract4.0 源码并在命令行中使用

    作者电脑:Mac Mini 系统信息:OS X EI Capitan 10.11.6 Tesseract4.0github地址:https://github.com/tesseract-ocr/tes ...

  8. Mac环境下Android Studio配置Git以及最基本使用

    Git是分布式版本管理工具,现在使用十分广泛,相对于SVN,GIT的使用更加方便,在离线环境下,仍然可以进行版本控制工作.且速度十分快.在Windows下,先需要自行安装Git程序,网址git-scm ...

  9. eclipse编辑环境下导入springmvc的源码

    如果想要查看@ModelAttribute的源码,只需要,点击ctrl+鼠标左键,就会出现attach--,点击attach--,external,选择类似springframe-web-source ...

随机推荐

  1. [AcWing30]正则表达式匹配

    [AcWing30]正则表达式匹配 请实现一个函数用来匹配包括'.'和'*'的正则表达式. 模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次). 例如,字符串&quo ...

  2. Servlet简单例子

    一.项目结构 二.index.jsp <%@ page contentType="text/html; charset=utf-8" %> <html> & ...

  3. readlink、find-exec参数、file命令

    一.readlink:查看符号链接文件的内容 语法       readlink [选项] ...文件... 描述       打印符号链接或规范文件名的值 -f,--canonicalize     ...

  4. 网络名称空间 实例研究 veth处于不同网络的路由问题

    相关命令详细介绍参见 http://www.cnblogs.com/Dream-Chaser/p/7077105.html .问题: 两个网络名称空间中的两个接口veth0和veth1,如何配置net ...

  5. 并不对劲的复健训练-bzoj5249:loj2472:p4364[2018多省联考]IIIDX

    题目大意 给出\(n,k,d_1,...,d_n\)(\(n\leq 5\times 10^5,1<k\leq 10^9,d\leq 10^9,k\in R\)).有一个满足 对于每个点\(i\ ...

  6. 树莓派和STM32通过USB和串口通信记录

    不管怎样,为了简便开发,通信选择串口通信. 推荐文章:https://blog.csdn.net/magnetoooo/article/details/53564797 推荐测试工具:https:// ...

  7. hdu 6025(女生赛)

    典型的用空间换取时间的思想 关键要理解多个数怎么算最小公倍数 用一个前缀 一个后缀 然后枚举去掉的点就可以了 #include <iostream> #include <cstdio ...

  8. ArrayList,LinkedList,Vector区别.TreeSet,TreeSet,LinkedHashSet区别

    ArrayList: 基于数组的数据结构,地址连续,一旦数据保存好了,查询效率比较高,但是因为其地址连续,所以增删数据需要移动数据,影响速度 内部数组长度默认为10,当需要扩容时,数组长度按1.5倍增 ...

  9. C#取绝对值函数

    System.Math.Abs(float value); System.Math.Abs(decimal value); System.Math.Abs(int value); System.Mat ...

  10. 使用 “Unicode 字符集 ” 使用错误,应该使用 “使用多字节字符集”

    “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char ...