为什么 Antiviruses 不检查 exe 的库模块来检测钩子?

信息安全 反恶意软件 键盘记录器
2021-08-31 08:35:17

我在 Windows 中用 C# 编写了一个简单的键盘记录器(使用 Hook 方法SetWindowsHookEx)。我使用大多数防病毒和反间谍软件程序检查了我的应用程序,但没有检测到它。

为什么这些防病毒或反间谍软件程序不反汇编可执行文件以查找SetWindowsHookEx. 我读到超过 80% 的键盘记录器使用这种挂钩方法。

1个回答

这是为了避免所谓的误报,即当用户收到有关危险的警报而实际上根本没有危险时。

你还记得这个富裕的时代,当你浏览互联网时,你每天面对十几次警告弓,上面写着“警告!你正在查看的网页包含一些安全元素和一些不安全元素!你是确定要继续! ”。这样做的结果只是人们被训练忽略浏览器的警报消息并盲目地单击“确定”按钮,从安全的角度来看,这完全适得其反。

现在这与您的SetWindowsHookExAPI 调用相同。防病毒软件无法确定软件的意图,它只能依赖于事实的一个子集。所以,也许这个 API 调用的使用是作为启发式的一部分,考虑到几个其他参数,帮助反病毒软件确定软件何时出现可疑行为,但是这个 API 调用的唯一存在是不够的,因为许多授权应用程序也使用它(如果您编写一个简单的批处理文件删除所有文档,也是如此:您的防病毒软件不会阻止您运行它)。

这就是为什么尽管防病毒软件可以提供针对知名恶意软件的良好保护水平,但它永远不能成为防弹保护,第一道和更好的防线仍然是用户应该接受适当教育以识别并避免打开可疑文件。