应用程序签名 - 更改为APK

时间:2013-11-12 23:26:31

标签: android hash certificate apk rsa

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

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

我已经能够重现MANIFEST.MF和CERT.SF的内容,但我无法找到CERT.RSA是如何连接的#34;那些文件。

我的意思是:如果我更改APK内容(f.e。替换app图标),那么当然,在安装过程中,我得到一个例外,说MANIFEST中的哈希值和实际哈希值不同。但是当我在MANIFEST和CERT中更新哈希值以使它们正确时,我在安装期间仍然会收到无效证书异常。但这次是在apk中的第一个资源文件。

那么,即使我更新了哈希,Android怎么知道我改变了apk中的内容?我看到这与CERT.RSA有某种关系,但我很难找到它是如何工作的。

编辑,更明确地说:除了上面提到的内容之外,所有内容都必须匹配,以便Android会考虑某些APK有效吗?

1 个答案:

答案 0 :(得分:0)

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

这是关于Andorid Master Key漏洞,它与APK签名密切相关。虽然我仍然希望能够深入解释所有这些内容中的一些加密过程,但这个讲话是一个很好的开始。我绝对推荐给任何对此主题感兴趣的人。 (如果您知道任何相关的会谈/文本,请将其作为评论或答案分享)

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