android 反编译及二次打包详细步骤 |
您所在的位置:网站首页 › 反汇编apk能不能拿到密码 › 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文件别名] 再次指令安装,好了,这下可以开心的玩耍了 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |