博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
识别Andriod APK签名证书类型
阅读量:7032 次
发布时间:2019-06-28

本文共 1094 字,大约阅读时间需要 3 分钟。

转载请注明出处

根据已知Google证书的序列号来识别APK使用哪种证书签名的

目前只列出google原生签名,其他私有签名均视为presigned

#!/bin/bash

# Grab cert. info from APKs

# eric, 130628
CER_NAMES=(
# google key serial
google_platform
google_shared
google_media
google_testkey
# google devkeys
google_devkey
google_devkey_media
google_devkey_platform
google_devkey_shared
)
CER_SERIALS=(
# google key serial
B3998086D056CFFA
F2A73396BD38767A
F2B98E6123572C4E
936EACBE07F201DF
# google dev devkeys
BCDFE81405D5C69E
A1573D0F45BEA193
A3823FB27F6289B8
BE56E295629C3E3D
)
if [ -z $1 ]
then
   echo "usage: $0 <apks_dir>"
   exit 1
fi
echo "certificate, cert_serial, apk" >/dev/stderr
(
find $1 -name *.apk | while read apk
do
    # echo "=== $apk ==="
    apk_cert=$(unzip -p $apk META-INF/*.RSA | \
               openssl pkcs7 -inform DER -print_certs | \
  openssl x509 -noout -serial)
    if [ $? != 0 ]
    then
        echo "*** err: Cannot grab certs of '$apk'"
continue
    fi
    rsa_ser=${apk_cert#*=}
i=0
cert="presigned"
for v in ${CER_SERIALS[@]}
do
   if [ "$v" = "$rsa_ser" ]
   then
   cert=${CER_NAMES[$i]}
# echo "$i === $cert"
break
fi
i=$((i+1))
done
    echo "$cert, $rsa_ser, $apk"
done
) | sort
exit 0

你可能感兴趣的文章
ios中的多播委托
查看>>
Java基础-单例模式
查看>>
轻仿QQ音乐之音频歌词播放、锁屏歌词
查看>>
MongoDB 4.0 RC 版本强势登陆
查看>>
AliOS Things网络适配框架 - SAL
查看>>
iOS 客户端与服务端做时间同步
查看>>
多个请求统一更新界面
查看>>
illuminate/routing 源码分析之注册路由
查看>>
网易公共技术Java研发工程师面经(offer)
查看>>
说说如何在登录页实现生成验证码功能
查看>>
笔记-softmax、softmax loss
查看>>
FastDFS蛋疼的集群和负载均衡(六)之Nginx高可用集群
查看>>
C语言入门经典读书笔记----第十一章 结构化数据
查看>>
Apache Thrift系列详解(二) - 网络服务模型
查看>>
chrome devtools使用详解——Performance
查看>>
了解一下ES6: 解构赋值&字符串
查看>>
7 - 在 Django Admin 后台发布文章
查看>>
SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页
查看>>
Umeng第三方登录
查看>>
EggBorn.js:一款顶级Javascript全栈开发框架
查看>>