![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/94c47449df54957d008cce3b5d084911.png#pic_center)
一、环境准备
安装java:反编译工具依赖java环境
下载地址:https://www.oracle.com/java/technologies/downloads/
注意事项:windows系统需要设置java环境变量
检测安装:java -version
硬件设备:pixel手机,需要root
二、apk包文件结构
.apk文件其实是一种压缩包其包含如下:
- classes.dex:编译后的代码
- AndroidManifest.xml:重要配置文件,app启动入口,界面信息等
- assets:静态资源目录,没被编译,例如图片、证书等
- lib:so文件,不同的目录对应不同兼容芯片,其是c或者c++开发的文件,再通过java调用
- res:资源目录,被编译了
- resources.arsc:资源文件索引
三、工具使用
adb工具:需要单独下载(ps:模拟器,androidstudio里自带)
- 进入手机:
adb shell
- 安装apk:
adb install xxx.apk
- 卸载apk:
adb uninstall 包名字
- 上传文件:
adb push 电脑路径 手机路径
- 下载文件:
adb pull 手机路径 电脑路径
- 查看日志:
adb logcat
四、反编译工具
apktool 命令行执行,下载地址:https://github.com/iBotPeaches/Apktool
apktool 具体使用前往 app逆向-apktool逆向工具安装使用
jadx 图像界面版,下载地址:https://github.com/skylot/jadx
jeb_wincon 图像界面版,下载地址 :https://tool.kanxue.com/index-detail-182.htm
五、重打包apk,签名
反编译后的APP重新打包安装需要给apk签名,否则未签名的apl不能在安卓手机上安装。
keytool jarsigner 工具是java jdk自带的
生成密钥库(Keystore)
keytool -genkey -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000
用证书给apk签名
jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -signedjar E:\apk\2.apk(签名后的app) E:\apk\1.apk(签名前的app) my_alias
删除证书
keytool -delete -alias my_alias -keystore E:\apk\my-release-key.keystore