识别Andriod APK签名证书类型

转载请注明出处

根据已知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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值