【问题标题】:Is There A Way To Detect A Key Logging Software?有没有办法检测密钥记录软件?
【发布时间】:2011-05-17 15:44:20
【问题描述】:

我可能会编写一个程序来检测恶意(或非恶意)软件,即按键记录(记录按键以获取信息)。

  1. 将使用什么策略?
    • 是否需要查找特定代码?
    • 我应该搜索某些位置吗?
  2. 我更喜欢 Java 或 Perl,因为我精通这些语言
    • 这些语言能用吗?
    • 有没有更好的语言来处理这种情况?
  3. 将使用什么?
    • 代码?
    • 算法?
    • 功能?

【问题讨论】:

    标签: keylogger malware-detection


    【解决方案1】:

    我认为这取决于您尝试做什么。如果您正在寻找已知的键盘记录程序,您可以使用任何可以搜索文件系统的软件来查看文件签名。但是,听起来您想检测未知程序。我不相信这是绝对可能的。键盘记录应用程序可以被动地收听击键,因此没有您可以寻找的主动签名。理解应该在您的计算机上运行的软件然后检测任何开始运行的新软件可能会更容易。它不一定是击键记录软件,但它可能是未经授权的软件(或至少尚未成为授权软件)。

    击键作为事件广播到系统,您可以在应用程序中订阅这些事件。这就是游戏和其他程序使用键盘输入的方式。整个系统都知道何时按下键以及它是哪个键。你不知道谁在听。

    换句话说,如果可能的话,它会杀死软件击键记录器,因为每个防病毒和反间谍软件应用程序都可以选择检测和删除所有这些类型的软件。他们有一个与此类似的选项,但它基于已知击键记录器的已知签名。

    【讨论】:

      【解决方案2】:

      作为一个程序试图确定它的输入是否被键盘记录,对于写得不好的键盘记录器,你可以寻找一些时间模式,比如记录器回收缓冲区时的周期性延迟,但通常键盘记录器是写得非常好,并将自己注入驱动程序链,因此与普通链无法区分。

      在这种情况下,检测键盘记录器的唯一希望是检查驱动程序链以寻找非标准驱动程序(但一些键盘记录器可以感染标准驱动程序),这在 Windows 领域并不特别容易(如此低水平检查)。

      需要插入防病毒/防恶意软件挂钩才能真正访问驱动程序链定义和正在执行的实际代码,以检测是否发生了某些键记录,以及这很难,充满官僚作风,而且除了 C/C++ 之外的任何东西都几乎无法解决

      【讨论】:

        猜你喜欢
        • 2021-10-19
        • 2017-08-23
        • 1970-01-01
        • 2013-01-14
        • 1970-01-01
        • 2021-05-04
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多