在java代码中包含apk签名以在运行时验证它

时间:2017-05-11 19:15:20

标签: java android

我一直在对APK进行一些逆向工程,我发现这些人将base64中的签名保存为类的静态属性,以便他们可以验证APK的当前签名是否为通过比较它们是有效的。

经过大量研究后,我的问题是:

1)他们如何计算签名然后在代码中对其进行硬编码?在修改java代码以包含签名后,是否会更改签名?

2)使用哪些APK来计算签名?

嗯,我希望这很清楚,如果您有任何疑问,请告诉我,我会编辑。

谢谢!

1 个答案:

答案 0 :(得分:0)

android.content.pm.Signature是一个命名不佳的课程。它实际上是签名密钥的公共部分的X.509证书的编码版本。

请注意,他们的辩护基本没有意义。也许它会捕获一些缺乏经验或愚蠢的攻击者,但其他人只会将比较值更改为他们对应用程序进行的任何修改的一部分。

其中"签名"检查可以有用的是验证其他应用程序的签名密钥,前提是您可能不受影响,但它们可能是重新打包的应用程序。