| |
|
开发:
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 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |