0

我一直在玩 android APK 签名,我想再问几个问题。

我知道 MANIFEST.MF 包含 APK 中所有文件的 SHA-1 哈希值。我知道有 CERT.SF 包含清单的散列和所有清单条目的散列。然后是 CERT.RSA,其中包含来自用于签署 APK 的密钥库的 RSA 证书。

我已经能够重现 MANIFEST.MF 和 CERT.SF 的内容,但我找不到 CERT.RSA 是如何“连接”到这些文件的。

我的意思是:如果我更改 APK 内容(fe 替换应用程序图标),那么当然,在安装过程中,我会收到异常说 MANIFEST 中的哈希和实际哈希不同。但是,当我更新 MANIFEST 和 CERT 中的哈希值以使其正确时,我仍然在安装过程中遇到 Invalid Certificate Exception。但这次是在 apk 中的第一个资源文件上。

那么,即使我更新了哈希值,Android 怎么知道我在 apk 中更改了某些内容?我看到这在某种程度上与 CERT.RSA 相关,但我很难弄清楚它是如何工作的。

编辑,更清楚地说:除了上面提到的之外,所有的东西都必须匹配,以便 Android 认为某些 APK 有效?

4

1 回答 1

0

所以,我做了更多的研究,偶然发现了 BlackHat 会议的这个精彩演讲:http: //youtu.be/ExX9_BN9XL8

这是关于与 APK 签名密切相关的 Andorid Master Key 漏洞利用。尽管我仍然希望对所有这些背后的一些加密过程进行更深入的解释,但这次演讲是一个很好的开始。我绝对推荐给对这个话题感兴趣的人。(如果您知道任何相关的谈话/文本,请分享它们作为评论或答案)

如果我发现任何更彻底的东西,我会在以后为后代添加它:) 在那之前,真正的答案是:阅读源代码......

于 2013-12-02T23:57:29.997 回答