ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

安卓逆向之apk重打包

2022-04-09 02:31:41  阅读:354  来源: 互联网

标签:keystore 逆向 -- 安卓 ks apk adb pass


在学习《Android 软件安全权威指南》第二章对apk文件反编译后修改smail文件跳转指令实现程序无条件注册时遇到了一些问题

APK重打包流程

重新编译APK

修改apk反编译的smail文件后需要利用apktool重新编译成apk文件。执行apktool b apk反编译的文件夹路径,执行之后生成一个bulid文件夹和dist文件夹,其中dist文件夹中存储的是重新编译的apk文件

对apk做4字节对齐

在使用命令行打包apk时,由于命令行打包直接将resources.arsc进行压缩而无法在后期的android版本上运行。使用JAVA sdk的build-tools中的zipalign.exe对apk做4个字节对齐,执行zipalign -v -p 4 infile.apk outfile.apk

对apk进行V2签名

未签名的apk文件无法在android系统上运行,通过使用java sdk的build-tools目录的lib中的apksigner.jar对对齐后的apk进行V2签名。通过keystore签名文件

/ --ks [签名证书路径]
// --ks-key-alias [别名]
// --ks-pass pass:[KeyStore密码]
//  --key-pass pass:[签署者的密码]
//  --out [output.apk] [input.apk]

java -jar apksigner.jar sign --ks keystore路径 --ks-key-alias keystore别名 --ks-pass pass:keystore密码 --key-pass pass:keystore密码 --out output.apk input.apk

安装并运行重打包的apk

利用adb指令,安装apk:adb install apk路径,运行apk:adb shell am start -n packagename/launch activityname(packagename是包的名字,lauch activityname是activity的名字)

利用signapk进行V1签名和利用apksigner进行V2签名

高版本的android系统apk必须采用v2签名,而使用signapk进行V1签名的apk无法在高版本的android上运行。

生成keystore

利用jdk(对于android studio默认的jdk是位于其目录下的jre)的bin目录下的keytool.exe生成keystore文件,keytool -list -v -keystore 生成的keystore文件路径(注意生成keystore文件的上级目录必须存在)。
然后填写passward后再填写基本信息,最后按y后回车确定。

adb安装debug的apk出错

如果直接adb install debug的apk会报错,我们需要运行adb install -t debug的apk

标签:keystore,逆向,--,安卓,ks,apk,adb,pass
来源: https://www.cnblogs.com/revercc/p/16120665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有