IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> android 反编译及二次打包详细步骤 -> 正文阅读

[移动开发]android 反编译及二次打包详细步骤

有时候有反编译的需求,借鉴或者修改下APK的代码及资源。

先下载必须软件

ApkTool? ? ?https://ibotpeaches.github.io/Apktool/install/

ApkTool用于解压.apk文件及二次打包,直接用解压工具解压出来的文件是无法阅读和修改的;

mac下安装有时会提示权限问题,指令实例:chmod +x d2j_invoke.sh

指令解释:chmod +x 未获取权限的文件名,可以是相对或者绝对

然后下载

选择一:

dex2jar??https://sourceforge.net/projects/dex2jar/files/

最新版本是2.0,? 2015年最后更新,说明有点过时了,作用是将.dex文件反编译为.jar;

jd-gui? ? ?http://java-decompiler.github.io/

最新版本是1.6.6,下载mac版本要求电脑安装JDK11,所以直接下载通用的.jar就可以运行了,作用是查看反编译后的.jar,然后修改对应的.samli文件,.samli文件是很难看懂的,不过也是能修改的。

选择一是以前的方式,有点过时了,建议用选择二;

选择二:

jadx-gui? ? ??https://github.com/skylot/jadx/releases

这个软件可以直接解压apk文件及反编译,相当方便好用。

有些需要梯子,这里直接提供了目前最新工具套装forMac,因为我现在很少用win哈:

https://download.csdn.net/download/msn465780/83369358

如何使用?

安装好ApkTool后,把.apk文件拷贝到apktoo目录下的bin目录下,和apktool这个可执行文件一级,mac系统在/usr/local/Cellar下;

指令官方文档:?https://ibotpeaches.github.io/Apktool/documentation/

有解压和二次打包的各种指令;

终端进入上述bin目录,这里先解压指令例子:apktool d -s zz.apk -o zz

说明:apktool d -s [apk名字]?-o [解压后的文件夹名字],d是decode

当然也可以用绝对路径哈;

解压后得到如图:

还有一个指令:apktool d ?zz.apk -o zz,这个没有-s, 解压出来的就不是.dex文件,而是.smali

接下来,使用dex2jar,看名字就知道是将dex反编译为jar, 将.dex拷贝到dex2jar根目录下,

终端进入到dex2jar目录下,mac系统指令:?sh d2j-dex2jar.sh classes.dex

指令解释:sh d2j-dex2jar.sh [目标dex文件的名字]

然后生成一个classes-dex2jar.jar;

在后, 用下载好的jd-gui打开这个.jar进行查看源码,如图:

?是不是有点麻烦?是的

那么新一代神器就出场了哈,jdx-gui,

用这个软件直接打开目标.apk,如图:

接着,另存为android工程,用androidstudio查阅,就相当方便了哈,如图:

?此过程可能需要几分钟,请耐心等待或者去搞其他的事,好了后用AS打开此项目,当然项目结构语法肯定有错误哈,这个的目的是为了查阅源码和资源的,是不能二次打包的哈;

再接着,找出需要修改的地方,就找到对应的.smail文件修改哈,.jar和.smali文件的名字都是一样的哈,应该找文件问题不大哈。

二次打包,

同样定位到bin下apktool文件那个目录,进入终端,指令:

apktool b zz?-o new_zz.apk

指令解释:apktool b [解压后的文件名]?-o [二次打包的apk名],b指build

?然后终端进入到SDK自带的platform-tools目录下,用adb指令安装新的apk, 指令示例:

adb install /Users/chenqi/Downloads/new_zz.apk

以为可以开心的玩耍了吗?还差一点点哈,

此时会发现安装不了,提示证书检验失败,简单,再次签名就好了哈,将签名文件拷贝到apktool可执行文件目录下,当然也可以写绝对路径,

指令示例:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Untitled -storepass 123456 new_zz.apk 123456

指令解释:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystore文件路径] -storepass [keystore文件密码] [待签名APK路径] [keystore文件别名]

再次指令安装,好了,这下可以开心的玩耍了

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:12:56  更:2022-03-06 13:13:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:41:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码