MAC下Apktool、dex2jar、jd-gui的安装和反编译、回编译、重新签名简单使用
一、安装
1、安装Apktool
方法1:普通下载安装
- 下载Apktool
- 下载Apktool安装包脚本
macOS:
下载Mac 包装器脚本(右键单击,将链接另存为apktool)
下载apktool-2(在这里找到最新的)
将下载的jar重命名为 apktool.jar
将两个文件(apktool.jar&apktool)移动到/usr/local/bin(需要root)
确保两个文件均可执行(chmod +x)
尝试apktool通过cli 运行
$:cd /usr/local/bin
$:chmod +x apktool
方法2:使用homebrew安装
或者您可以通过Homebrew安装apktool :
如本页所述安装Homebrew
brew install apktool在终端中执行命令(无需root)。最新版本将安装/usr/local/Cellar/apktool/[version]/并链接到/usr/local/bin/apktool。
尝试apktool通过cli 运行
注意 -包装脚本不是必需的,但很有用,因此您不必java -jar apktool.jar一遍又一遍地输入。
brew install apktool
# 验证安装结果
apktool -version
2、安装dex2jar
需要注意的是,假如使用dex2jar遇到
报错 com.googlecode.d2j.DexException: not support version。
则说明你安装的版本不兼容,所以尽量安装最新版本。
下载地址:https://github.com/pxb1988/dex2jar/tree/2.1-nightly-28
点击右下角的Latest按钮,选择最新版本进行下载;
最后点击下载zip文件,解压就OK了。我比较懒,直接把dex2jar放在了桌面,也方便我使用。
3、安装JD-GUI
官网下载地址:http://java-decompiler.github.io/
把app文件拖到Application文件夹下就ok了。
二、反编译流程
现在桌面上有一个demo.apk文件,我们复制一份,demo副本.apk
将副本文件名的后缀改为zip,即demo副本.zip
1. 获取xml反编译文件和smail代码
启动终端
$:cd /Users/apple/Desktop
$:apktool d demo.apk
注意,demo.apk 要在控制台的当前目录下,因为demo.apk 在桌面,所以我先cd到了桌面的目录。
其中d是decode的意思,表示我们要对Demo.apk这个文件进行解码。那除了这个基本用法之外,我们还可以再加上一些附加参数来控制decode的更多行为:
· f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
·o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹。
·s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
·r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。
常用用法就这么多了,那么上述命令的执行结果如下图所示:
原文链接:https://blog.csdn.net/u013082948/article/details/52195514
2. 反编译calss.dex文件
刚刚的demo副本.zip解压获得demo副本文件夹,进入文件夹后拷贝classes.dex(如果解压失败,换一个解压软件,不用系统自带的)
打开dex2jar 解压的目录,将classes.dex文件复制进去
由于我的dex2jar文件夹在桌面上,所以终端直接执行:
apple@fenglolodeMacBook-Pro ~ % cd /Users/apple/Desktop/dex-tools-2.1
apple@fenglolodeMacBook-Pro dex-tools-2.1 % ./d2j-dex2jar.sh classes.dex
如果没有执行权限
apple@fenglolodeMacBook-Pro ~ % cd /Users/apple/Desktop/dex-tools-2.1
apple@fenglolodeMacBook-Pro dex-tools-2.1 % chmod +x ./*
apple@fenglolodeMacBook-Pro dex-tools-2.1 % ./d2j-dex2jar.sh classes.dex
这个时候文件夹下回多出一个jar文件classes-dex2jar.jar
3. 查看jar文件代码
打开 JD-GUI ,将 jar 拖拽到 JD-GUI 区域就可以看代码了(该代码是混淆之后的)
三、回编译流程
以demo.apk通过 apktool d demo.apk 反编译生成的demo文件为例:
命令行窗口输入
apktool b demo
新生成的apk会在demo/dist/目录下面。若报错则输入apktool -r b name,资源文件不反编译,避免资源报错
四、apk 签名,打包
命令行窗口输入
jarsigner -verbose -keystore 签名文件名字 -signedjar newName.apk oldName.apk 签名文件名字
输入密钥库的密码短语:
备注:
签名文件名字:如abc.keystore
newName.apk:签名后的apk的名字,可自定义
oldName.apk:需要被签名的apk的名字,如我的案例中应为demo.apk
然后输入你的签名文件的密码就开始重新签名了,签名后的apk为你自定义的newName.apk。
MAC下Apktool、dex2jar、jd-gui的安装和反编译、回编译、重新签名简单使用相关推荐
- MAC下 Intellij IDEA GO语言插件安装及简单案例
MAC下 Intellij IDEA GO语言插件安装及简单案例 GoLang专有IDE GoLand : http://www.jetbrains.com/go/ 下载地址 Intellij IDE ...
- Mac下图像标注工具labelImg的安装
目标检测时需要对训练数据进行标注,标注工具为labelImg,其在Mac下的安装教程如下: # Install PyQt4, it must be this version brew install ...
- java在mac下开发环境_Java开发环境安装(MacOS、Windows)
目录 Java for Windows安装步骤 下载JDK 2.进入主页面之后点击 3.进入到JDK10下载页面之后,将页面下拉到最下方,找到Java Archive 4.即跳转到所有的Java版本中 ...
- Mac下Ruby升级与Rails的安装
也是醉了,网上查了半天一脸懵逼.然后自己动手试试 gem install rails瞬间命令行就没反应了,以为命令行挂了,但是一会儿报错说是没有权限. 好吧,那么来这个 sudo gem instal ...
- Mac下matplotlib显示中文(不用安装字体)
matplotlib绘图中文显示小方格,网上一大堆方法要下载simhei.ttf字体,还要修改matplotlib设定balabalabala,我一步步照做了,结果,没用. 然后发现: matplot ...
- macbook自带python保存文件夹_在mac下查找python包存放路径site-packages的实现方法 在Mac系统下python如何安装第三方函数库?...
mac怎么查看python的site-package位置世界上最伤心的事,不是你爱的人不爱你,而是他爱你过后,最后却不爱你. 可以通过find命令查看,参考demo如下: sudo find / -n ...
- Mac 下抓包工具安装使用
Mac下抓包 阅读目录 1.安装XQuartz 2.安装Wireshark 3.启动Wireshark 4.选择网卡,开始抓包 5.监听抓取802.11无线帧 6.通过RVI抓取iPhone数据包 7 ...
- (转)Mac下MySql安装经历(含安装错误排查、卸载多种折腾)
在安装mysql的时候,活活折腾我两天.结果终于被我折腾成功了-- 一开始我就放了个错误:我下了32位版本的mysql:mysql-5.5.8-osx10.6-x86.dmg 须知在mac下装的是6 ...
- Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作
首先确保已经安装了Python Mac 下可以直接使用 brew 来安装OpenCV,具体步骤如下: # add opencv brew tap homebrew/science# install o ...
最新文章
- 【jsp】兴唐第三十节课作业
- 数据库Mysql的学习(六)-子查询和多表操作
- cocos2d-x for android配置 运行 Sample on Linux OS
- 云盘运用了计算机技术,360云盘咋找出来
- html时间框自动更新,原生javascript实现自动更新的时间日期
- 数据结构与算法分析(二)——C++实现链表
- [No00005A]word多文档合一
- mysql从备份,mysql 主从同步范例-从同步备份步骤
- 量子化学计算机理,量子化学(理论化学的分支学科)_百度百科
- 一种基于SoC和阿里云的智能家居系统设计方案_家电研究报告
- 虚拟机内存管理之内存分配器
- 深度学习第一章(rnn)
- 【电子器件笔记4】电感参数和选型
- GVM(openVAS)中scan configs为空的问题解决
- jdom操作xml实战
- 基于 YOLOV3的交通车辆检测
- 计算机用户身份识别,计算机用户身份识别装置及使用方法与流程
- uniapp聊天室动画加载新消息
- linphone 手机上不能接听电话
- 【Machine Learning】机器学习之一些数学相关的知识储备
热门文章
- Java爬虫历险记 -- (1)爬取百度首页的logo
- 【BZOJ30472125】Freda的传呼机
- vue自定义html模板,vue中自定义html文件的模板
- 修复Ubuntu文件系统
- 【MM32F5270开发板试用】定制MicroPython及读取MPU6050数据到OLED1306
- JAVA_02 j2se j2ee j2me jse jee jme
- 《用事实说话》阅读心得
- Label Smoothing 标签平滑 (Label smooth regularization, LSR)
- 调度程序所用数据结构—Linux
- 酷派大观4 8970 刷android 4.4,极速达百兆! 移动4G版酷派大观4网络体验