0

我正在尝试在内核级别检测交互式进程。例如,如果用户单击某个应用程序窗口,我想检测从该用户交互产生的所有进程。我的问题还没有结束。在某些情况下,由用户交互启动的那些进程将与其他一些现有进程通信,例如后台服务,并在给出一些 GUI 反馈之前等待该服务响应。我希望能够跟踪整个工作流程,并说出类似流程 A 在时间 1 通过鼠标单击启动然后在时间 2 与流程 B 通信然后流程 B 在时间 3 回复到流程 A 并最终流程 A 在时间 4 完成的内容。对于由交互式操作触发的工作流,逐步详细了解幕后发生的事情。

有任何想法吗?到目前为止,我一直在尝试检测(放置跟踪)与进程间通信相关的系统调用,但没有运气。也许我没有在正确的地方追踪。

谢谢!

4

1 回答 1

0

如果用户单击应用程序产生子进程,那么新产生的进程很可能是该应用程序的子进程。从内核中,您可以检查子进程列表。在父进程的点击处理实例上,这将是current内核中的任务。因此,您可以遍历client->children列表并找到流程。当前进程可能已经有孩子,那么您需要跟踪现有的孩子列表并跟踪新添加的内容。

于 2013-10-08T15:33:21.777 回答