【问题标题】:Writing an Android key logger by intercepting keyboard?通过拦截键盘编写Android键盘记录器?
【发布时间】:2015-03-19 08:37:35
【问题描述】:

背景

作为计算机安全课程的学校项目,我和一个朋友打算尝试编写一个 Android 键盘记录器。在查看了已经存在的解决方案之后,我们得出的结论是,大多数其他人都是通过实现替换原来的键盘来做到这一点的。我们最好避免使用这种解决方案。

问题

是否有可能以某种方式拦截 Android 键盘,还是我们必须找到其他解决方案?例如,在计算机上您可以拦截中断,但由于 Android 键盘是一个软件,是否有任何实际的中断可能对我们有用?

【问题讨论】:

  • 在计算机上您无法拦截中断,因为内核不允许您这样做。 (好吧,如果您是内核或内核的一部分,那么您可以,这正是 Windows 和 Linux 上的设备驱动程序)
  • 也许自己写键盘软件?
  • @immibis 我很清楚这一点,但根据我的经验,大多数 PC 键盘记录器使用某种漏洞来侵入内核。
  • @Haketo 我在这个问题中非常明确地说我们想避免这种解决方案,但无论如何谢谢。
  • 如果你发现了一个可以侵入非 root 手机内核的漏洞,你就已经赢得了地球上所有安全研究人员的注意,并且可能获得了很多金钱奖励。

标签: java android keylogger


【解决方案1】:

android键盘和windows键盘的工作方式有区别。

Windows : 键盘在可以检测到的硬件中断上工作。

Android:在 android 键盘上通过拦截触摸事件来工作。 键盘应用程序将视图附加到显示特定语言的键盘布局的可用窗口(WindowManagerService)。 然后用户触摸“albhabet”的特定区域,窗口管理器将触摸事件分派给键盘应用程序,键盘应用程序通过识别来检测用户触摸的位置 触摸事件网络坐标,然后通过识别后将“触摸字母”发送到视图(EditText for ex),该视图通过 InputMethodManagerService 绑定到键盘 或已安装应用程序的自定义键盘服务。

用户在安装时验证的应用程序权限。

因此键盘应用程序在andorid 中工作在沙盒中工作,并且它正在做的事情无法被任何人检测到 由于 android 的安全特性,外部应用程序。

因此,基于此,我认为除非设备有可用的硬件键盘,否则您无法检测到任何硬件中断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2011-10-25
    • 2016-12-23
    • 2017-10-17
    相关资源
    最近更新 更多