wfp驱动开发进程监控

利用wfp来做进程的流量监控,有个问题想请教下,回调函数中layerdata,假如是inboundtranslayer层,net-buffer-list获取的layerdata不就是整个层的data大小吗?虽然可以用establish层绑定进程信息,但是在translayer层获得的数据不是整个的嘛?那么怎么去获得单个进程的流量信息?有点没搞清楚,希望大家解惑下

Windows Filtering Platform (WFP) 是一个微软 Windows 系统中的高级网络过滤和防火墙框架。在 WFP 中,可以使用回调函数来监控网络流量,并对其进行过滤。

对于你的问题,如果在 inboundtranslayer 层获取的 layerdata 是整个层的数据大小,那么你可以在 establish 层绑定进程信息,并在 translayer 层获取数据时将其与 establish 层的进程信息关联起来,这样就可以获得单个进程的流量信息。

具体来说,你可以在 establish 层绑定进程标识符(PID)或进程名称等信息,然后在 translayer 层的回调函数中使用这些信息来确定当前流量属于哪个进程。

此外,WFP 还提供了一些内置的过滤器,可以根据进程标识符、端口号等信息来过滤网络流量,这样可以更简单地获得单个进程的流量信息。

总之,要获得单个进程的流量信息,你需要在 establish 层绑定进程信息,并在 translayer 层使用这些信息来确定当前流量属于哪个进程。

通过使用 establish 层绑定进程信息可以获得单个进程的流量信息。在 establish 层获取的数据是单个进程的流量数据,通过 trans 层获取的数据是整个系统的流量数据。

你可以通过在 establish 层绑定进程信息并获取该进程的流量数据来获得单个进程的流量信息。

望采纳!!!点击回答右侧采纳即可!!!
对于你问的问题,在WFP中,回调函数中的layerdata获取的数据是整个传输层的数据,这个数据并不是指单个进程的流量信息。

要获取单个进程的流量信息,需要在传输层数据中进行进一步的处理。可以通过绑定进程信息来获取单个进程的流量信息。

通过使用WFP的establish层绑定进程信息,在translayer层获得的数据中,可以通过进程信息来分辨出是哪个进程产生的数据。这样就可以获得单个进程的流量信息。

需要注意的是,在使用WFP进行网络流量监控时,需要对传输层数据进行分析和处理,并且需要获取进程信息来区分不同进程的流量信息。需要一些编程知识和技能,并且需要对WFP技术有深入了解。

您好,其实在wfp获取进程流量信息这部分,大部分是通过FwpmNetBufferList层和FwpmFlowEstablish层(建立流量时)来获取的。FwpmNetBufferList层用来把数据封包,FwpmFlowEstablish层用来建立流量,并分别获取进程端口及进程信息。而FwpmTransportLayer层的layerdata的layerdata的layerdata的NetBufferList中的数据,其实获取的不是单个进程的流量,而是当前建立的传输层流量的总量,只有通过分析这些数据,才能确定当前的流量状况,从而获取到进程的流量大小。

在回调函数中,layerdata 可以用来获取层的信息。如果是 inboundtranslayer 层,那么 net-buffer-list 获取的 layerdata 就是整个层的数据大小。但是可以使用 establish 层绑定进程信息,这样就可以在 translayer 层获取单个进程的流量信息。如果要获取单个进程的流量信息,可以在 establish 层绑定进程信息之后,在 translayer 层中根据绑定的进程信息进行筛选。
仅供参考,望采纳,谢谢。

WFP (Windows Filtering Platform) 是 Windows 上的一种网络过滤技术,可以用来监控进程的网络流量。在 WFP 中,你可以使用回调函数来监听网络流量并获取相关信息。

当你在 inboundtranslayer 层使用 net-buffer-list 获取 layerdata 时,你得到的数据是整个层的数据大小。但是,你可以在 establish 层绑定进程信息,然后在 translayer 层获取进程的网络流量信息。

如果你想获取单个进程的流量信息,可以使用 WFP 中的相关函数和数据结构,如 FwpsInjectTransportReceiveAsync0 和 FWPS_TRANSPORT_SEND_PARAMS0,来检索进程 ID 和端口号,然后根据这些信息来筛选出特定进程的网络流量信息。

需要注意的是,WFP 是一个高级的网络过滤技术,如果没有相关经验,可能需要学习一定的网络编程和 Windows 系统知识才能正确使用。
希望对你有帮助,望采纳。