Android应用签名校验和完整性校验实战
创作时间:
作者:
@小白创作中心
Android应用签名校验和完整性校验实战
引用
CSDN
1.
https://blog.csdn.net/u011195398/article/details/84567580
签名校验和完整性校验是Android应用开发中重要的安全措施,主要用于防范二次打包和盗版风险。本文将详细介绍如何进行签名校验,包括获取APK、获取调试应用的keystore、对APK进行重新签名等步骤,并提供具体的命令行操作示例。
准备工作
在开始之前,你需要确保已经完成以下准备工作:
- 项目代码:确保你有一个完整的Android项目代码。
- 主要实现类:了解项目中的主要实现类,例如
SignatureChecker。
验证默认签名信息
1. 获取应用的APK
在编写好项目以后,通过以下步骤获取APK:
- 点击
build -> build apk。 - 文件路径:
app/build/outputs/apk/debug/app-debug.apk。
2. 获取调试应用的keystore
- 打开Finder程序,路径:
Go -> Home -> ./android/debug.keystore。 - 使用keytool命令查看android模式调试debug.keystore的签名信息,默认密码为空。
命令:
keytool -list -v -keystore debug.keystore
3. 信息对比
检查apk文件中的签名信息:
命令:
keytool -printcert -file CERT.RSA
对比信息:
在这里完全可以看出,我们的apk默认的是经过androidstudio的debug.keystore来签名过的APK。
对APK进行重新签名
创建两个keystore
创建两个KeyStore文件,分别命名为keyStoreA和keyStoreB。
创建一个未签名的Apk,命名为app-release-unsigned。
对APK进行签名
使用KeyStoreA文件对app-release-unsigned进行签名,签名后的APK为app-release-keystoreA。
命令:
jarsigner -verbose -keystore /path/to/keystoreA -signedjar /path/to/app-release-keystoreA.apk /path/to/app-release-unsigned.apk android
命令解析:
-keystore参数指定您的私钥的绝对路径。-signedjar参数指定签名后apk文件存放绝对的路径。[未签名的文件路径]指定要签名apk文件的绝对路径。[您的证书名称]是指您创建密钥时您设置的证书名称。
删除APK的签名信息并重新打包
- 解压
app-release-keystoreA,删除META-INFO文件夹下的三个文件:
ANDROID.RSAANDROID.SFMANIFEST.MF
注意:这里的三个文件的名称因为工具的原因可能会根据改变,我们删除的时候,看他的后缀名称就好。
重新打包删除后的
app-release-keystoreA文件,后缀名改为APK。使用
keyStoreB对app-release-keystoreA进行重新签名,生成app-release-keystoreB。
命令:
jarsigner -verbose -keystore /path/to/keystoreB -signedjar /path/to/app-release-keystoreB.apk /path/to/app-release-keystoreA.apk androidx
防止APP被盗版验证
KeyStoreA和KeyStoreB的签名MD5比较
- 安装keystoreA签名过的APK文件。
命令:
adb install -r /path/to/app-release-keystoreA.apk
生成MD5值:
8ad65c2224d9c303250c7c49a3672323
- 修改签名,使用KeyStoreB重新签名
命令:
adb install -r /path/to/app-release-keystoreA.apk
生成MD5值:
8fe878055ba594ee41ba8a4b2e0ca3e5
注意:这里的MD5值不和KeyStore显示的格式一样,是因为我格式再次进行了MD5加密。
可以看出来,即使是同样的APK,但是使用不同的签名还是会出现不同的APK值。所以,我们可以在应用中做校验,当MD5值不一样时,就不是官方正版的APK了。
热门推荐
锅具的分类与用途,探索厨艺背后的多功能工具
上海海港亚冠失利剖析:武磊缺席成关键短板!青黄不接难题待解!
人工智能中的数据单一文化:对多样性和创新的威胁
回收银的地方:生活与工业应用及回收全解析
航空母舰上,有哪些工作人员?他们的工作服有什么不同?
分析10 kV和35 kV配电网系统中的间歇性电弧接地过电压问题
股权质押后质权人违约怎么办
睡不着、睡不够、睡醒了头晕……这些问题困扰你了吗? 午睡也是个“技术活”
证券交易员岗位职责
等额本金提前还款的最佳时机
统计小“科”堂丨我有一个“小指标”之GDP
一文读懂GDP:定义、核算方法与应用要点
人大数字化:赋能代表履职,强化民意互动的新路径
光电传感器开关的使用及背部旋钮调节的作用
紫微斗数武曲是什么意思?武曲在十二宫的含义
运动如何促进大脑健康?科学揭示运动对大脑的多重益处
运动居然能逆转神经细胞流失,改善大脑结构和功能!
30岁还能长个子吗
躁郁症≠抑郁症!情绪像坐过山车?专家带你了解这个易被误诊的双相情感障碍
中老年人喝茶要小心?医生提醒:牢记“3喝3不喝”原则,早知道早受益
高温多雨菜价大幅攀升 秋季菜价或回归常态
1944年拍摄的纪录片,全是抗日战争的真实画面,看完久久不能平复
非医学专业想学医途径?
吃青团的时节到了 这份食用指南请查收→
菱属植物分类与形态特征解析 | 水生植物百科
奶豆添营养 少油更健康
牙髓腔钙化牙齿还能保留吗?专业解析及治疗建议
男孩用哪个yu字好?男孩用“yu”字起名的寓意
白炭黑分散剂PEG4000性质应用与前景展望
DeepSeek 本地部署指南(基于 vLLM)