Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何识别。客户端已修改apk_Android_Security_Apk - Fatal编程技术网

Android 如何识别。客户端已修改apk

Android 如何识别。客户端已修改apk,android,security,apk,Android,Security,Apk,我有一个移动应用程序,用户将在他们的手机上安装 我想使其安全,不应允许攻击者修改.apk文件。 我已经注意到我的应用程序不会在根设备上运行 服务器应该能够识别攻击者是否修改了某些代码或重定向到外部链接 如何实现上述场景 如何实现上述场景 删除APK。重写你的应用程序,使用一些通用的客户端,使其完全在服务器上运行。如果您不经常使用客户端JavaScript,Web应用程序可能符合条件 另一个应用程序可能会检测到您的APK是否已被更改,因为更改的APK不会由您的签名密钥签名。但应用程序本身无法检测是

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

我想使其安全,不应允许攻击者修改.apk文件。 我已经注意到我的应用程序不会在根设备上运行

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

如何实现上述场景

如何实现上述场景

删除APK。重写你的应用程序,使用一些通用的客户端,使其完全在服务器上运行。如果您不经常使用客户端JavaScript,Web应用程序可能符合条件

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

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

例如:

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

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

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

  • 等等

您可以使用诸如DexGuard之类的工具,试图让某人难以更改客户端

可能重复的