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. co源码

    co模块整体包括三部分 对于几种参数类型的判断,主要判断是否object,array,promise,generator,generatorFunction这几种; 将几种不同的参数类型转换为prom ...

  2. 第12课.经典问题解析(const;指针和引用)

    问题1:const什么时候为只读变量?什么时候是常量? const常量的判别准则: a.只有用字面量初始化的const常量才会进入符号表(直接初始化过的const为常量) b.被使用其他变量初始化的c ...

  3. Oracle-DQL 2- 限定和排序

    1.where子句--查询30号部门员工的姓名,职位和工资SELECT ename,job,sal,deptno FROM empWHERE deptno = 30; --查询职位是manager的员 ...

  4. 植物大战僵尸:寻找阳光掉落Call调用

    实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地Call,使用代码注入器注入,自定义生成阳光 阳光CALL遍历技巧: 进入植物大战僵尸-> 当出现阳光后->马上搜索未知初始数值 返回游 ...

  5. axios配置

    import axios, { isCancel } from 'axios' import { md5 } from 'vux' import util from '@/libs/util' imp ...

  6. c# 后台隐式使用webBrowser

    c#不使用 webBrowser 控件, 在后台加载html流 private void button1_Click(object sender, EventArgs e) { string urlP ...

  7. JS基础_while的练习1

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Yali7月集训Contest2 T1 Cube 题解

    题目链接: 连我们都只有纸质题目...话说雅礼集训都是这样的吗... 大意 0维基本图形是一个点 1维基本图形是一条线段 2维基本图形是一个正方形 3维基本图形是一个正方体 4维基本图形是... 求\ ...

  9. loj 2759「JOI 2014 Final」飞天鼠

    loj 这题有在一棵树上上升或者下降的操作,稍加分析后可以发现上升操作如果不是一定要做(指高度不足以到下一棵树或者是最后到达\(n\))就不做,下降操作也是如果不是一定要做(指到达下一棵树时高度过高) ...

  10. 帝国cms 通过栏目获取某个栏目的详情

    当是某个栏目的时候,获取另外一个栏目下第一篇文章的详情,否则获取当前栏目下第一篇文章的详情 <?php $classid = $GLOBALS['navclassid']; if($classi ...