进程与数据包的区别

Process distinction from packets

我用 NDIS 驱动程序和 Pcap 库从一台电脑上捕获了所有数据包。
我可以从这些数据包中区分进程并按进程对数据包进行分组吗? 或者我应该使用 recv,关于所有进程的发送函数钩子?

当数据包到达 NDIS 层时,关于谁发送数据包的更高层元数据已经消失。 (如果您尝试获取当前进程,您会发现当前进程 ID 通常是错误的。NDIS 在任意进程上下文中发送流量,而不是发送方的原始上下文。)

在 Windows 中执行此操作的首选方法是开发 a WFP callout。 WFP 标注被赋予数据包、发送过程、用户身份和其他元数据。

Microsoft 不鼓励您挂钩函数。甚至不鼓励 LSP,并且 OS 不会 运行 在所有情况下(例如,商店应用程序)您的 LSP。