获取安卓库中源代码的校验和

我正在开发一个Android库,我想对我的代码应用篡改检测机制,因为它调用一些敏感的金融Web服务。

我将要实现的是计算apk(或其重要部分)的校验和,在运行时以编程方式,这样我就可以防止重新打包或重新编译的apk能够造成任何伤害(防篡改)。

到目前为止,我想出的是计算.但我不确定具有多个dex文件或多个拆分Apks的应用程序会发生什么。applicationInfo.publicSourceDir

以编程方式根据 Android 中应用程序的代码库计算校验和的最可靠方法是什么?


答案 1

如果您通过游戏进行分发,则可以查看SafetyNet:https://developer.android.com/training/safetynet/index.html


答案 2

校验和方法可以应用于单个文件或 zip 文件。检查所有文件的校验和将是一个漫长的过程。我认为你走错了方向。

首先,这个问题没有明确的解决方案。任何应用程序都可能被黑客入侵 - 你可以让它难以被黑客入侵。

这就是为了让它变得困难而做的事情 -

  1. 加密您的apk - 因此很难获得您的源代码。参考 - APK保护apk免受逆向工程 - 检查混淆工具。

  2. 在从 Web 服务发送/接收数据时使用数据加密。您可以使用 HMAC 来保护数据。确保您的服务器足够智能,可以阻止用户/请求应用程序,以防出现多个不良呼叫。HMAC 易于实现,并且有库可以生成 HMAC 密钥。


推荐