apktool 主要用于逆向apk文件。它可以将资源解码,并在修改后可以重新构建它们。它还可以执行一些自动化任务,例如构建 apk
下载地址
反编译APK
命令格式:apktool d [ apk文件名 ]
进入到 apktool 所在目录
.\apktool.jar d .\mlxx.apk
不行的话就用下面这个命令,前面加上 java -jar
java -jar .\apktool.jar d .\mlxx.apk
编译成功之后会出现一个文件夹
AndroidManifest.xml
APP权限配置
程序入口
smali 文件(一种汇编代码)
.smali可以和.dex相互转换
修改APK代码通常修改smali文件(重新修改.java源代码 重新编译的困难太大)
-baksmali.jar smali.jar对dex 和 smali文件做转换
classes.dex
源代码在classes.dex文件里
可以反编出.java代码
重新打包
命令
apktool b 目录
apktool b mlxx
如果不行
java -jar .\apktool.jar b mlxx
打包成功后目录内会出现一个 dist 目录,apk 就在里面
签名
keytool jarsigner 工具是JAVA JDK自带的
生成证书
keytool -genkey -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000
key
dec
keytool
工具名称(固定写法)
)-genkey
执行的是生成数字证书操作(固定写法)
-v
打印生成证书的详细信息
-keystore myApp.keystore
生成的证书的文件名为"myApp.keystore"(根据需求,设置你的证书名)
alias myApp.keystore
证书的别名为"myApp.keystore"。(一般和上面的文件名相同,可以不同,但要记好,签名时会用(A))
-keyalg RSA
生成密钥文件采用的算法为RSA(固定写法)
-validity 3000
该数字证书的有效期为30000天,30000天之后该证书将失效
用证书给 apk 签名
jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -signedjar super.mlxx.apk mlxx.apk my_alias
key
dec
jarsigner
工具称名(固定写法)
-verbose
显示出签名详细信息
-keystore myApp.keystore myApp.keystore
要使用的签名证书文件
-signedjar android-release-signed.apk
签名后的文件名
android-release-unsigned.apk
要签名的文件
myApp.keystore
别名,即(A)步中的别名
未签名APK不能在安卓手机上安装
APP在启动时会对签名校验,要逆APP,跳过校验