我正在构建一个系统,可以监控用户对系统安全警报的反应(软件更新,警告等)。它还需要监控网络流量和系统上运行的进程,我期待社区帮助我设计这个系统。我们打算为用户提供测试笔记本电脑并监控他们在一段时间内的行为,以了解他们如何应对各种应用程序和操作系统(本例中为Windows)引发的安全警报。
以下是我的问题
我可以使用Windows钩子解决第一个问题,即查找用户对各种应用程序抛出的警报的反应。具体来说,可以使用全局钩子来解决这个问题吗? (如何收集这些信息(XML?)并转发回服务器(频率如何?)是另一个问题)
我可以在C#中执行此操作,还是只能在c ++或VB中完成?
您知道解决问题的替代方法吗?是否有任何具有这些功能的软件。
我还有很多问题,但得到这些答案将是一个很好的第一步。真的希望得到这个社区知识渊博的人的一些好的见解
提前谢谢
修改 示例场景是当adobe提示您更新Flash播放器或防病毒提示您更新定义或任何应用程序显示通知(安全相关的关键字,如更新,警告,安装等),需要用户采取某些操作。 Windows系统更新是另一个例子。我想知道用户对这些警报/通知/更新(通常是弹出窗口)的反应。所以我想知道我是否放置了一个可以监视屏幕上显示的窗口内容的全局钩子,并在窗口的内容/标题中出现更新,警报,警告等某些词语时通知我(服务器)以及用户做了消息(解雇它,Oked它等)。不幸的是,我没有比这更多的规格了。我可以使用任何我想要实现的目标而且我不清楚我的选择是什么。
编辑2:
在查看了我的要求并阅读了关于钩子之后,我觉得我可以通过钩子和以下textGrab SDK http://www.renovation-software.com/en/text-grab-sdk/textgrab-sdk.html的组合实现这一点。我想要一些指导,知道我是否走在正确的轨道上。我在想如果我可以安装钩子然后它给了我屏幕上所有可能窗口的句柄,我可以使用textGRAB SDK在这些窗口中查找某些关键字。虽然这可能会捕获一些有趣的文本,但我仍然不确定如何知道用户在窗口上采取了什么操作。任何有钩子或textGRAB任何经验的人,请告诉我这是否合理。如果社区对如何监视系统中任何应用程序引发的安全相关消息有其他想法,请建议。我期待着为完成具有挑战性的项目提供一些有用的建议。
答案 0 :(得分:0)
首先,您需要定义如何在代码中“看到”安全警报。 “安全警报”是一个相当模糊的术语。它会是一些窗口,带有一些标题和一些消息给用户或......?
接下来,关于Web和进程:Windows挂钩无法帮助您完成任务。它们更低级,并不像您需要的那样先进。您无法挂钩网络流量(Vista前需要network filter driver或Vista及更高版本需要Microsoft Filtering Platform)。有关使用C#检查进程列表的一些信息,请参阅this question(似乎没有简单的方法来捕获进程启动)。
答案 1 :(得分:0)
我会尝试回答你的一些问题,但就像我说的那样 - 在我们为你提供最佳答案之前,你需要了解更多有关问题的信息。
-Alerts一个术语过于模糊,你需要更好地定义它。这些“警报”应用程序是您控制的还是第三方应用程序?并非每个应用程序都会以相同的方式显示“警报”,即使它们确实如此 - 我认为使用系统级别挂钩可能会有太多问题无法实现您的解决方案。我并不是说这一定不可能,但你在谈论可能为你想要监控的每个应用程序实现一组不同的逻辑(以确定给定应用程序的警报的数据)。
- 我们任何人都无法确定满足您特定需求的最佳存储机制,您需要提供更多详细信息或自行决定。
- 您经常收集数据也需要您自己提供更多详细信息或自行决定。
-C / C ++可能会为您提供最便携的解决方案,尽管没有什么可以阻止您使用c#来调用Win32 API。 (并非每个人都安装了.NET框架 - 信不信由你)
- 你提到的问题似乎是一个有点特殊的问题......我不知道任何现有的软件会做你想做的一切。
您未涉及的另一个可能的问题: 你没有为这个“服务”指定你的目标受众,但是我想让你知道,如果我发现一个应用程序监视的事件和你正在谈论的事件一样多,我会立即删除它并写一封讨厌的信件给你写它的公司。
总之,请在钩子上阅读此Article以更好地了解它们的工作原理。