1

我目前正在开发一个与 Google Drive 交互的应用程序。当您使用 Drive 注册应用程序时,它会要求您提供用于对其进行签名的密钥的 SHA1。在我以前的应用程序中,我没有实现许可库,因为它似乎需要更多的工作,然后它是值得的,而且总是会被修补,我的理论是,如果人们不想付钱,他们就不会付钱,我可以在其他地方更有建设性地利用我的时间。

然而,Drive 要求密钥的 SHA1 的事实让我想知道,当发出请求以确保它来自使用正确密钥签名的应用程序时,它是否会对此进行验证?

如果是这样,那么像lucky patcher 这样的修补应用程序是否会退出该应用程序,这实际上会使该应用程序发出的任何请求无效,从而使其无法在云端硬盘中使用?

谢谢。

4

2 回答 2

4

如果有人感兴趣,我最终从 Lucky Patcher 的作者那里找到了答案。他说 LP 不会放弃 APK。它修补 odex 文件或修补 Dalvik 缓存中的应用程序,因此不会更改签名并且 APK 保持不变。

他还提供了一些建议来防止幸运的修补程序以这种方式工作,即将 LVL 代码放在其他地方的 jar 文件中,例如资产文件夹或资源文件夹,然后从那里调用代码。这只是意味着要破解 LVL 代码,破解者必须修补 jar,然后重新签名代码。

因此,对于我们这些在您的代码中使用 Google API 来验证应用程序签名的人来说,我们似乎拥有一种相当可靠的复制保护方法。当然,直到他们找到解决方法。毫无疑问,他们会的。

于 2012-11-30T14:31:12.143 回答
0

我不知道如何修补像 Lucky Patcher 这样的应用程序,但 API 控制台要求密钥的 SHA1 的原因正是您所说的:能够确保 API 请求来自特定应用程序。

这是 Google Play 服务引入的新要求:https ://developers.google.com/android/google-play-services/authentication

于 2012-11-27T21:47:40.060 回答