android - 验证Android apk没有被重新打包?

标签 android security checksum

希望提高我的 Android 应用程序的安全性,以标记 .apk 是否已被提取、修改、重新打包和退出。这是来自 Zdnet 的文章,指出了该问题 link1 .

担心的是,如果该应用程序成为黑客的目标,他们可能会添加恶意代码并上传到备用应用程序商店并欺骗用户下载它。

所以我正在考虑使用代码来验证 apk 或签名证书的校验和?

我很欣赏可以重新打包应用程序代码并删除任何安全代码,但这确实增加了重新打包它的难度,也许足以让他们尝试另一个应用程序。

[更新]我知道 Google Play 商店许可模块提供了类似的功能,但我正在为非付费应用和其他/非市场寻找一些东西。

最佳答案

我最终使用了 Dexguard (Android 付费混淆器)。它提供了一个执行 apk 验证的模块。它易于实现,并提供比一般保护更好的保护。

这是进行检查的代码:

dexguard.util.TamperDetection.checkApk(context)

主要问题是在哪里存储 apk 的校验和以进行验证,因为它可以被替换。 dexguard 方法是在本地检查它,但使用类/字符串加密和 api 隐藏等其他功能会掩盖此调用。

关于android - 验证Android apk没有被重新打包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785001/

相关文章:

android - android 如何找出隐式 Intent 的 URI 的 MIME 类型?

Android容器以编程方式

asp.net - 在 cookie 中加密 session ID(或其他身份验证值)是否有用?

security - 如何在 asp.net core(本地)中保护 ConnectionString 和/或 AppSettings

android - Activity 开始另一个 Activity 。保证第一个 Activity 的 onPause 将在第二个 Activity 的 onResume 之前被调用

php - 如何识别curl请求

IPv6数据包的UDP校验和计算

algorithm - 可以用什么方法来分析和猜测4位校验和算法?

sha1 - 如何计算空文件的加密校验和?

android - 在android中,即使启动服务的应用程序被手动杀死,服务是否可以在后台运行