mac 环境下Android 反编译源码
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
文件夹下,确保apktool
、apktool.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 反编译源码的更多相关文章
- MAC环境下 Android P 系统源码下载、编译、导入到AS、Pixel2xl刷机 实战
一.下载源码 1 . 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 2 . 下载 Repo 工具,并确保它可执行: curl ...
- 【转】mac环境下Android 反编译
一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes.dex文件转化为.jar文件. jd ...
- mac环境下Android 反编译
连接地址: https://www.jianshu.com/p/3a305f32c4a3
- Windows 环境下于虚拟环境安装源码安装 cx_oracle
安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...
- ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用
转载请注明出处:http://blog.csdn.net/fightlei/article/details/52432161 最近在学习Android反编译的一些知识,虽然在网上搜到了很多相关的文章, ...
- Windows 环境下于虚拟环境中源码安装 cx_oracle
安装前提条件: (1).安装 instantclient-basic-nt (2).安装 instantclient-sdk-nt (3).安装 Microsoft Visual C++ Compil ...
- 在Mac OS 下 build Tesseract4.0 源码并在命令行中使用
作者电脑:Mac Mini 系统信息:OS X EI Capitan 10.11.6 Tesseract4.0github地址:https://github.com/tesseract-ocr/tes ...
- Mac环境下Android Studio配置Git以及最基本使用
Git是分布式版本管理工具,现在使用十分广泛,相对于SVN,GIT的使用更加方便,在离线环境下,仍然可以进行版本控制工作.且速度十分快.在Windows下,先需要自行安装Git程序,网址git-scm ...
- eclipse编辑环境下导入springmvc的源码
如果想要查看@ModelAttribute的源码,只需要,点击ctrl+鼠标左键,就会出现attach--,点击attach--,external,选择类似springframe-web-source ...
随机推荐
- co源码
co模块整体包括三部分 对于几种参数类型的判断,主要判断是否object,array,promise,generator,generatorFunction这几种; 将几种不同的参数类型转换为prom ...
- 第12课.经典问题解析(const;指针和引用)
问题1:const什么时候为只读变量?什么时候是常量? const常量的判别准则: a.只有用字面量初始化的const常量才会进入符号表(直接初始化过的const为常量) b.被使用其他变量初始化的c ...
- Oracle-DQL 2- 限定和排序
1.where子句--查询30号部门员工的姓名,职位和工资SELECT ename,job,sal,deptno FROM empWHERE deptno = 30; --查询职位是manager的员 ...
- 植物大战僵尸:寻找阳光掉落Call调用
实验目标:通过遍历阳光产生的时间,寻找阳光产生的本地Call,使用代码注入器注入,自定义生成阳光 阳光CALL遍历技巧: 进入植物大战僵尸-> 当出现阳光后->马上搜索未知初始数值 返回游 ...
- axios配置
import axios, { isCancel } from 'axios' import { md5 } from 'vux' import util from '@/libs/util' imp ...
- c# 后台隐式使用webBrowser
c#不使用 webBrowser 控件, 在后台加载html流 private void button1_Click(object sender, EventArgs e) { string urlP ...
- JS基础_while的练习1
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Yali7月集训Contest2 T1 Cube 题解
题目链接: 连我们都只有纸质题目...话说雅礼集训都是这样的吗... 大意 0维基本图形是一个点 1维基本图形是一条线段 2维基本图形是一个正方形 3维基本图形是一个正方体 4维基本图形是... 求\ ...
- loj 2759「JOI 2014 Final」飞天鼠
loj 这题有在一棵树上上升或者下降的操作,稍加分析后可以发现上升操作如果不是一定要做(指高度不足以到下一棵树或者是最后到达\(n\))就不做,下降操作也是如果不是一定要做(指到达下一棵树时高度过高) ...
- 帝国cms 通过栏目获取某个栏目的详情
当是某个栏目的时候,获取另外一个栏目下第一篇文章的详情,否则获取当前栏目下第一篇文章的详情 <?php $classid = $GLOBALS['navclassid']; if($classi ...