【发布时间】:2011-06-23 18:24:11
【问题描述】:
我正在构建一个系统,该系统可以监控用户对其系统上的安全警报(软件更新、警告等)的反应。它还需要监控网络流量和系统上运行的进程,我期待社区帮助我设计这个系统。我们打算为用户提供测试笔记本电脑并在一段时间内监控他们的行为,以了解他们对各种应用程序和操作系统(本例中为 Windows)引发的安全警报有何反应。
以下是我的问题
-
我能否使用 Windows 挂钩来解决第一个问题,即找出用户对各种应用程序引发的警报的反应。具体来说,可以使用全局钩子来解决这个问题吗? (如何收集这些信息(XML?)并将其转发回服务器(频率如何?)是另一个问题)
我可以在 C# 中执行此操作,还是只能在 C++ 或 VB 中执行此操作?
您知道解决问题的任何替代方法吗?有没有具备这些功能的软件。
我还有很多问题,但回答这些问题将是很好的第一步。真的希望从这个社区的知识渊博的人那里得到一些好的见解
提前谢谢你
编辑: 示例场景是当 adobe 提示您更新 flash 播放器或防病毒软件提示您更新定义或任何应用程序显示通知(与安全相关的关键字,如更新、警告、安装等)时,需要用户采取一些措施。 Windows 系统更新是另一个例子。我想知道用户对这些警报/通知/更新(通常是一个弹出窗口)的反应。所以我想知道我是否放置了一个全局钩子,它可以监视屏幕上显示的窗口的内容,并在窗口的内容/标题中出现某些单词(如更新、警报、警告等)时通知我(服务器)以及什么用户对消息做了处理(解雇了它,确定了它等)。不幸的是,我没有比这更多的规格。我可以使用任何我想实现的东西,但我不清楚我的选择是什么。
编辑 2:
在查看了我的要求并阅读了有关 hooks 的内容后,我觉得我可以通过结合使用 hooks 和以下 textGrab SDK http://www.renovation-software.com/en/text-grab-sdk/textgrab-sdk.html 来实现这一点。我需要一些指导,以了解我是否走在正确的轨道上。我在想如果我可以安装钩子,那么它可以让我处理屏幕上所有可能的窗口,我可以使用 textGRAB SDK 在这些窗口中查找某些关键字。尽管这可能会捕获一些有趣的文本,但我仍然不确定如何知道用户在窗口上执行了哪些操作。任何对钩子或 textGRAB 有任何经验的人,请让我知道这看起来是否合理。如果社区对我如何监控系统中任何应用程序抛出的安全相关消息有其他想法,请提出建议。我期待一些有用的建议来完成一个具有挑战性的项目。
【问题讨论】:
-
任何从这些应用程序中收集有用数据的尝试都是一种黑客行为。您基本上是在谈论拦截每个 Windows 消息并尝试重新构建他们采取的操作。这样做的问题是每个应用程序都可以编写不同的,并且您不会找到一种方法来完成您正在寻找的事情。即使您确实设法完成了这项工作,您的应用程序也可能在任何给定时间更改(更新?)并且您的代码将不再像您预期的那样工作。
-
如果您碰巧可以控制要监控的应用程序,那将是一回事。如果这只是一小部分人的学习练习,我是否可以建议模仿您希望他们响应的消息类型?示例:编写一个应用程序来显示错误、警报、警告、问题,以及任何你想要的 - 并以你喜欢的格式(xml?)简单地记录他们的操作。
-
@syllogism:我一直在尝试了解更多关于钩子的信息并查看了我的要求。我需要监视任何运行的应用程序,看看它们是否会发出任何警报、警告或提示更新。我相信可以通过钩子进行监控。我希望安装一个钩子,当一些“有趣的事件”发生时,被调用的过滤器函数会记录下来。但是,我仍然不清楚我需要哪个确切的钩子。 WH_CBT 看起来很有希望,但 WH_SYSMSGFILTER 和 WH_CALLWNDPROC 也是如此。我不确定监控所有应用程序的事件需要哪个钩子或钩子组合。
标签: windows security process hook monitor