//通过各手机管理软件,如如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. P类问题,NP,NPC,HPHard,coNP,NPI问题 的简单认识

    参考<算法设计技巧与分析>--沙特 问题可以分为判定类问题和最优化问题,判定类问题可以转化为最优化问题,所以下面讨论的是判定类的问题. P类问题是可以在多项式时间  采用确定性算法给出解 ...

  2. PAT l2-010 排座位 【并查集】

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

  3. 链接脚本再探和VMA与LMA

    链接脚本简单描述 连接脚本的描述都是以节(section)的单位的,网上也有很多描述链接脚本语法的好文章,再不济还有官方的说明文档可以用来学习,其实主要就是对编译构建的整个过程有了深入的理解后就能对链 ...

  4. DuckDuckGo Privacy Browse‪r‬

    DuckDuckGo Privacy Browser https://apps.apple.com/app/duckduckgo-privacy-browser/id663592361 https:/ ...

  5. Linux Bash Script conditions

    Linux Bash Script conditions shell 编程之条件判断 条件判断式语句.单分支 if 语句.双分支 if 语句.多分支 if 语句.case 语句 refs http:/ ...

  6. React tutorial

    https://www.algolia.com Build Unique Search ExperiencesHosted Search API that delivers instant and r ...

  7. React LifeCycle Methods & re-learning 2019

    React LifeCycle Methods & re-learning 2019 v16.9.0 https://reactjs.org/docs/react-component.html ...

  8. React Hooks & react forwardRef hooks & useReducer

    React Hooks & react forwardref hooks & useReducer react how to call child component method i ...

  9. 「NGK每日快讯」2021.2.8日NGK公链第97期官方快讯!

  10. USDN代币多少钱?USDN有什么用?

    加密货币走向主流人群的采用有很多障碍,比如监管.交易所黑客事件等,但最明显的障碍还是它们极端的价格波动.这从加密货币的整个历史长度来看都是如此.一个货币要正常运转,比如成为有效的交换媒介.记账单位以及 ...