apk签名、包名
阅读原文时间:2023年07月10日阅读:1

//通过各手机管理软件,如如360、豌豆荚等查看

//使用命令行,可以查看到permission、packagename、title、versionCode等

aapt dump badging ~/Downloads/youku.apk

//apk指纹

keytool -printcert -file *.rsa

//签名过程,testkey.x509.pem是公钥,estkey.pk8是私钥,update_signed.apk是签名过后的apk

java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk

MD5:apk的MD5,该值与官方相同则肯定是同一款apk。

包名:相同包名的apk在安装时,原apk会被覆盖掉,这个机制会用在apk的升级版本中,如果是已知apk的升级版本

,则开发人员会用相同的包名,若apk的MD5不相同,但包名相同,则基本可以认定apk是官方版本或刻意伪造。

DEX的MD5:有时为优化界面,只修改资源文件不修改源代码,在apk的MD5不同,但是dex文件的MD5相同时,认定该

apk为家族变种apk。

指纹证书:除了包名,在验证apk的时候还需要签名证书,指纹的MD5或SHA1代表了签名信息,同一版本系列的apk基

本上会使用相同的签名证书,判断这两个值是否相同,基本可以确定apk是否是官方同一系列的版本(除非签名证书

丢失或遭窃取)。伪造的apk会使用不同的签名证书,得到的指纹证书信息肯定会不同。

与官方apk相比:

包名一致,签名信息不一致,基本上可以认定是伪造apk;包名不一致,签名信息一致,则认定为官方版本;包名和

签名都一致,认定为同一家族apk。

代码级的特征匹配:android下发布的apk的源码几乎都会被混淆,匹配源码没什么意义。但经过混淆仍然会保留一

部分库级的api,敏感的系统调用都是调用这些api,在反编译后的smali文件中仍然保留,不同apk对系统api调用的

相似性也可以作为一个凭证,但这个是粗粒度的。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章