//通过各手机管理软件,如如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调用的

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

apk签名、包名的更多相关文章

  1. apk的包名修改

    今天,想在android手机上安装两个相同的应用,本以为可以安装不同版本的,试了几次,均相互覆盖了,于是,只能设法修改apk所对应的包名(package name). 目的声明:本文只是为了满足DIY ...

  2. Android Apk获取包名和Activity名称

    一.使用aapt(Android Asset Packaging Tool)工具获取: 1.配置Android环境: a.添加build-tools/android路径到系统环境变量的中Path中,注 ...

  3. monkeyrunner_获取apk的包名和activity名

    一.使用adb获取单个apk的包名和Activity名称: 1.配置adb环境 a. 我的电脑点击右键-属性-高级-环境变量; b.  环境变量中新建PATH,变量值输入adb.exe工具所在目录; ...

  4. 如何查看Android apk的包名?

    有以下四种方法可以查看apk的包名,之后有别的方法,会接着更新文档的. 1. 安装APK包名查看器; 2. 源码AndroidManifest.xml中查看package包名; 3. 利用" ...

  5. [uiautomator篇] 如何获取apk的包名 博客模板

    Android自动化学习笔记:获取APK包名的几种方法 ------------------------------------------------------------------------ ...

  6. 如何通过apk获得包名及Activiy 名称

    一.使用重签名工具Robotium

  7. 查看apk文件包名的一些方法

    1,如果有源码 直接将apk包修改为zip,并解压找到AndroidManifest.xml文件,在文件中搜索“package”找到相应的包名 2,使用adb命令 前提是已经下载android SDK ...

  8. 获取Android apk的包名

    Read the package name of an Android APK aapt dump badging <path-to-apk> | grep package:\ name

  9. 移动测试===利用adb命令查看apk文件包名的一些方法

    前提是已经下载android SDK并配好环境变量! 在控制台输入命令$adb shell pm 可以看到adb shell pm的相关用法,详细信息请自己看输出 要看一个apk文件的相关信息最简单实 ...

随机推荐

  1. Kubernets二进制安装(6)之部署主控节点服务--etcd

    Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息. 整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是 网络插件 ...

  2. spring再学习之注解

    1.使用注解配置spring <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi= ...

  3. flagcounter 被禁用...

    源地址 https://s11.flagcounter.com/count2/arWz/bg_FFFFFF/txt_000000/border_CCCCCC/columns_2/maxflags_14 ...

  4. spyder import tensorflow

    之前安装了tensorflowgpu,但是在spyder中import会失败. 原因是因为新建了环境,要activate tensorflow-gpu进入安装了tensorflow 的环境才可以imp ...

  5. hdu 5874

    On an isolated island, lived some dwarves. A king (not a dwarf) ruled the island and the seas nearby ...

  6. redis键过期时间

    redis服务器中每个数据库都是一个redisDb,而redisDb实质上是一个字典的模型,数据库的每一个键都是一个字典的键值,对数据库的增删改查也就是对字典对象的增删改查. redis在维护带有过期 ...

  7. 使用opencv-python实现MATLAB的fspecial('Gaussian', [r, c], sigma)

    reference_opencv实现高斯核 reference_MATLAB_fspecial函数说明 # MATLAB H = fspecial('Gaussian', [r, c], sigma) ...

  8. google 人机身份验证

    google 人机身份验证 Are you a robot? Introducing "No CAPTCHA reCAPTCHA" https://googleonlinesecu ...

  9. JWT & JSON Web Tokens

    JSON Web Tokens https://jwt.io json web token example https://jwt.io/introduction/ https://medium.co ...

  10. 二叉搜索树 & 二叉树 & 遍历方法

    二叉搜索树 & 二叉树 & 遍历方法 二叉搜索树 BST / binary search tree https://en.wikipedia.org/wiki/Binary_searc ...