查找(并禁用)在我的

时间:2018-04-20 12:47:12

标签: android

我正在开发一个与安全相关的应用程序,我需要检测一个应用程序是否在我的屏幕上绘制/显示某些内容,以便检测在我的界面上抓取用户触摸的恶意应用程序(包括透明视图) )。

我发现了几个示例代码,这在Android 7及更高版本上不再适用。他们部分依赖于/ proc中的列表进程,但这不再起作用,因为proc现在只返回自己的进程。

有没有办法在7岁以上正确地做到这一点?

这是一个简单界面的例子,透明覆盖图是另一个吸引它的应用程序/服务。我想检测一下。

simple interface example

如果有帮助,我可以请求设备管理员。

1 个答案:

答案 0 :(得分:2)

起初我以为"此类攻击现在应该是不可能的"。然后我用谷歌搜索 tapjacking android 并找到Prateek Panda的this blog post,blog.devknox.io:

  

"如果您是开发人员,请与用户的困境联系,并将以下内容添加到预发布清单中:确保设置filterTouchesWhenObscured设置为true,或者方法onFilterTouchEventForSecurity()已在您的应用中实施。"

所以看起来你可以在自己的应用程序中做些什么来防御tapjacking。 (另请参阅View上的documentation,段落"安全")

我可以理解,出于隐私原因,甚至不允许设备管理员知道当前正在运行哪些应用。

但如果有一种方法可以通过编程方式强制执行安全设置以遵循博客帖子的建议,那就太好了:

  

如果您是用户,只需跳到“设置”区域,然后设置部分处理叠加屏幕即可。它应该被称为“可以出现在顶部的应用程序”或“吸引其他应用程序”的应用程序。如果您仍然不确定,只需通过简单的Google搜索手机即可显示该设置。

不幸的是,在我看来,Device Admin API并没有提供这样的选择。它似乎主要是关于密码,加密存储和禁用相机。

至少可以说,这令人失望。而且我很想听到我错过了那里的东西。