在线应用程序使用此技术永久禁止用户创建如果他们被禁止一次使用该服务,请再次创建一个新帐户。当此类用户通过稍后重新安装该应用程序创建新帐户时,这些应用程序将能够检测到其“首次访问”并将此信息发送到服务器,以便再次禁止该用户。
他们怎么做即使清除了它们的数据并完全卸载了它们之后?这意味着他们将某些文件保留在手机中的某个位置,卸载后不会删除。如何禁用此检测?
#1 楼
标识唯一设备或其用户的方法有多种:将文件保存在某个(非默认)目录中:应用程序通常可以写入设备的内部存储。这种方法很简单,可以离线使用,而且不是最容易发现的(将文件放在类似系统的目录中,没有人会费心删除它)。
跟踪唯一的设备
ANDROID_ID
(每个全新安装中唯一的设备):此方法很简单,但至少在首次使用时需要Internet访问。它不是很麻烦,即使恢复出厂设置也不会持久。每个用户也是唯一的。请参阅此信息。 IMEI:侵入性强,不可更改,但需要具有SIM卡功能的设备。 IMEI对于每台设备来说都是唯一的,无法更改且不会跟随用户,这意味着如果您出售设备,则新所有者将看到一个屏幕,告诉他该应用程序已在手机上。
跟随用户的Google帐户:这与
ANDROID_ID
方法几乎相同,但需要用户的显式许可(Android 6.0+)才能访问。因此,利用Google帐户生态系统的应用程序(例如游戏中的高分和成就)可以关注特定用户并获得更多信息,而不仅仅是该应用程序是否已安装。2、3和4需要网络连接,并且开发人员侧需要服务器。
评论
我可以使用Xprivacy管理第2、3和4部分。我会欺骗他们每个人。但是第一个,不容易发现。无论如何,我可以检测到此漏洞吗?
– Defalt
16-09-25在16:56
这不是漏洞,只是滥用的功能。与将文件保存在注册表中的应用程序非常相似。除了浏览手机内部存储中的所有目录并查找可疑文件外,您无能为力。
– GiantTree
16-09-25在17:02
祝您好运,找到/制作此应用。由于内部存储中缺少某些文件,因此系统不会崩溃。通常,应用程序倾向于使用使用相同文件的相同框架,但是,正如您已经指出的那样,这些文件是不可能找到的(并非总是如此,但大多数时候)。包含“ id”,“ user”或类似名称的文件通常包含此类ID,而这些ID通常用于广告。
– GiantTree
16-09-25在17:29
@ S.Mitchell不,我从未被禁止任何在线服务,Web应用程序和在线游戏。但是我相信,了解系统如何在其界面背后工作是正确的步骤,是朝着Android开发前进的正确步骤。
– Defalt
16/09/26'2:31
@ user334283“永远不知道您要搜索的文件名”。这是错误的。 Android是linux操作系统,具有strace实用程序,可用于跟踪所有系统调用。因此,您必须使用strace来启动您的应用程序,并检查与设备上文件相关的所有系统调用,然后才能发现该应用程序读取/检查的文件是否存在。当然:在智能手机上可能很难做,但绝对有可能。
–巴库留
16-09-26在8:21
#2 楼
它不连接到存储,但连接到云。即使删除了数据,它也能记住它。为了关闭此功能,请转到设备的设置应用,在“个人”下点击Google帐户(如果您有多个帐户,请点击您想要的帐户),然后关闭您不想自动同步的应用。评论
自动同步不是根本问题。第三方服务器确保其应用程序能够收集您的MAC地址,IMEI,设备ID,广告ID,并将其存储到服务器,以便将来再次检测设备。欺骗这些细节将保护您的隐私,但是如果应用正在编写“注册表项”(如Windows),则将无法检测到问题。
– Defalt
16 Sep 25 '17:01
#3 楼
GiantTree的答案最能说明问题,但还有另一点需要考虑。显然,这将是“暗模式”,但也可以通过对某些用户数据进行指纹识别来完成此识别-这可以看作是他的第一点的变体(“保留文件”),但将更难检测且不太方便避免。这有多强的弹性取决于所选择的数据。最明显的方法是查看联系方式,并使用某种形式的指纹。另一种选择是使用照片时间戳和其他元数据。显然,这些随着时间的推移会发生变化,因此,无论使用哪种方法,都需要在修改后给出一个明确的答案(因此它不同于传统的哈希函数)。此外,也不能保证用户不会简单地擦除跟踪的数据,但在许多情况下,人们会宁愿不这样做。即使手机会比PC硬件更统一,但它的工作原理也会有所不同。也就是说,添加某些电话详细信息可能会帮助缩小指纹范围。在这种情况下(除非手机的详细信息进入指纹中),可能会询问该新手机,因为它已经安装了。但是,在应用程序试图禁止用户的情况下,这很有可能实际上是预期的结果(而不是禁止特定手机本身)
请注意:绝不是我说这是对的,如果您正在编写应用程序,这是一种正确的操作方式,但是讨论它似乎是合理的,因为只有通过讨论,人们才能弄清楚他们是否足够在意对此做些什么以及可能是什么。
#4 楼
有一个SharedPreferences类-https://developer.android.com/reference/android/content/SharedPreferences.html-一些应用程序用于存储首选项数据。卸载应用程序后,不会删除此数据。如果以后重新安装该应用程序,则以前保存的所有SharedPreferences密钥仍然可用。评论
卸载应用程序后,实际上会删除SharedPreferences。开发人员可以通过多种方式来设置备份,但是默认情况下,它们会在卸载时删除。 (来源:作为开发人员,我卸载了我的应用程序以清除首选项。另请参见:stackoverflow.com/a/9815641/1438733)
–埃里克
16-09-26在0:22
评论
为什么要删除此信息?应用程序创作者有权利吗?我不希望这是受欢迎的评论,但请考虑您是否花了时间和精力来创建应用。@ S.Mitchell今天,一些应用程序开发人员和大型广告公司试图从无辜的用户那里访问不必要的细节。他们不仅需要MAC地址,而且还想知道您的wifiSSID。Google通过在Android 6中实现您不想授予他们的权限,为他们提供了一个很好的教训。出行的方式。我要确保这个隐私系统。
@ S.Mitchell您好Mitchell。您可能因为我的问题而判断我错了。不,我不禁止任何社交或在线服务,也不会禁止堆栈交换(如果您对此表示怀疑)。但是对我来说,知道就是学习。我在这里收到的答案没有做任何实际的工作。但是肯定他们可以帮助人们了解事情的发展。如果不知道如何破解,就无法创建反黑客安全性。同样的比喻在这里。如果我无法学习应用程序的工作原理,那我就无用了。
@ S.Mitchell:应用程序创作者有权利吗?实际上,在我的电话上,他们没有。我可能会让他们运行他们的代码并将其数据存储在我的手机上,但他们没有权利,我保留自行决定撤销这两项特权的权利。
@ S.Mitchell我鼓励所有问题的答案,无论您为什么认为它们存在。好东西,你不要经营这个网站!