gpt4 book ai didi

android - 如何识别.apk在客户端被修改

转载 作者:搜寻专家 更新时间:2023-11-01 07:48:49 25 4
gpt4 key购买 nike

我有一个移动应用程序,用户将在他们的手机上安装该应用程序。

我想确保安全,不应允许攻击者修改 .apk 文件。我已确保我的应用程序无法在已获得 root 权限的设备上运行。

服务器应该能够识别攻击者是否修改了一些代码或重定向到外部链接。

我怎样才能实现上述场景?

最佳答案

How can i achieve the above scenario ?

删除 APK。使用一些通用客户端将您的应用程序重写为纯粹在服务器上运行的应用程序。如果您不以客户端 JavaScript 的方式使用太多,Web 应用程序可能符合条件。

另一个应用 可以检测到您的 APK 是否已被更改,因为更改后的 APK 不会由您的签名 key 签名。但是应用程序本身无法检测到它是否已被更改,因为攻击者可以删除检测代码。

服务器无法检测客户端是否已被更改,因为服务器只知道客户端发送给它的内容。只要更改后的客户端响应与原始客户端相同,服务器就无法区分。

例如:

  • 原始客户端将 foo 作为其与服务器通信的一部分发送。服务器拒绝任何不包含 foo 的通信。因此,更改后的客户端发送 foo

  • 作为原始通信的一部分,原始客户端从服务器接收到一个唯一 ID。原始客户端将该唯一 ID 保存在一个文件中,并将其包含在与服务器的进一步通信中。服务器拒绝任何不包含有效 ID 的通信。因此,更改后的客户端保存并使用相同的 ID 文件。

  • 服务器向客户端发送有效性质询,客户端需要根据客户端 APK 字节计算响应(例如,服务器要求客户端发送 APK 特定字节范围的加密安全散列).服务器拒绝与未通过此检查的客户端一起工作。因此,更改后的客户端会保留原始客户端 APK 的副本,用于计算响应。

  • 等等

您可以使用像 DexGuard 这样的工具来尝试让某人难以更改客户端。

关于android - 如何识别.apk在客户端被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com