gpt4 book ai didi

python - 如何使用 openssl 验证 apk 的签名

转载 作者:行者123 更新时间:2023-11-30 23:03:57 27 4
gpt4 key购买 nike

我编写了一个Python应用程序来分析apk文件。要检查 apk 的签名,我运行以下命令:

jarsigner -verify <path to apk>

通过子进程。出于性能原因,我想使用 openssl 而不是 jarsigner。

有没有办法做到这一点:

openssl verify <path to apk>

最佳答案

要为每个签名者全面验证 APK 的签名和完整性:

  1. 检查签名 block 文件 META-INF/ .[RSA|EC|DSA] 是否是相应 META-INF/ .SF 文件的有效 PKCS #7 CMS 签名。这可以通过以下方式实现:$ openssl cms -verify -content META-INF/CERT.SF -in META-INF/CERT.RSA -inform DER -noverify

  2. 检查 META-INF/MANIFEST.MF 的摘要是否与 META-INF/ .SF -Digest-Manifest 属性(base64 编码)中指定的相同。 Python/shell 欺骗和/或 OpenSSL 的“openssl dgst -binary -sha1 META-INF/MANIFEST.MF | base64”可以在这里提供帮助。

  3. 对于 META-INF/MANIFEST.MF 中列出的每个文件,检查该文件的摘要是否与 META-INF/MANIFEST.MF 中列出的摘要匹配。再说一次,Python/shell/OpenSSL 诡计...

  4. 检查 APK 中是否存在未在 MANIFEST.MF 中列出的文件(META-INF 中与签名相关的文件除外)。

如果您只需要提取每个签名者的证书,而不关心APK在签名后是否被篡改,则可以将自己限制在第1步。

关于python - 如何使用 openssl 验证 apk 的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com