apk签名、包名
2024-09-02 06:45:22
//通过各手机管理软件,如如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调用的
相似性也可以作为一个凭证,但这个是粗粒度的。
//使用命令行,可以查看到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调用的
相似性也可以作为一个凭证,但这个是粗粒度的。
最新文章
- Android学习杂记
- 运用泛型,冒泡排序实现JDK引用类型数组的排序
- 【原创】Java批量反编译利器(jd-gui)介绍
- 作业三(代码规范、代码复审、PSP)
- CSS实现透明边框
- linux vi 中按了ctrl+s后没法退出
- 服务器响应头隐藏X-power-by
- 报错:LINQ to Entities 不识别方法
- VS中设置#define _CRT_SECURE_NO_WARNINGS的两种方式
- 服务器端json解析
- HDU 2089 不要62(数位DP)
- JQuery 表单验证--jquery validation
- UVa 11069 - A Graph Problem
- XCode8中的sizeClass设置
- java新知识系列 六
- HDFS基础1
- 模拟退火算法-旅行商问题-matlab实现
- webhttpbinding、basichttpbinding和wshttpbinding的区别
- 火狐扒代码插件ScrapBook
- 使用jQuery仿淘宝商城多格焦点图滚动切换效果