apktool 反向编译apk
2018-04-24 本文已影响0人
默浑秩
apktool 反向编译apk
环境
- Windows 10
- java >= 1.7
- wget
操作
- 安装apktool
可参考:https://ibotpeaches.github.io/Apktool/install
java -version # 查看java版本,需>=1.7
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat # 下载apktool.bat
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.2.jar # 下载apktool_2.3.2.jar
rename apktool_2.3.2.jar apktool.jar # apktool_2.3.2.jar重命名为apktool.jar
安装完毕,切记需将apktool.bat和apktool.jar一起放置,可加入环境变量之后可以在任一目录执行运行,否则需切换到apktool.bat和apktool.jar所在的目录执行运行。
- 反向编译test.apk
apktool d test.apk [-o $dir] [-p $dir] # -o指定apk解码目录,可选项,-p指定frame框架暂存目录,可选项
# 现在可以在解码的目录内修改内容了,修改完毕后继续以下步骤
apktool b test [-o $file.apk] # -o指定构建apk文件的路径及文件名,可选项
至此反向编译test.apk完毕,不过此时apk还不能使用,需要重新签名之后才可正常使用。
PS:重新编译后的apk文件默认在解码目录下的dist目录下,若使用[-o]选项,则在指定目录
- 为apk文件签名
# 切记一个dos窗口只能运行生成一个keystore,如需生成多个,请重开dos窗口
# 生成keystore,输入密码后的选项随意填写,然后最后一步确认的时候按[y]后回车即可
keytool -genkey -keystore test.keystore -alias test -keyalg RSA -validity 1000
# 使用keystore为apk文件签名
# 其中[-signerjar]选项后跟三个参数,分别是签名后的apk文件,未签名的apk文件和keystore的别名(alias)
jarsigner -verbose -keystore test.keystore -signedjar test.out.apk $path/test.apk test
总结
自此apk文件反编译完成,特此记录备忘。