【问题标题】:Process distinction from packets进程与数据包的区别
【发布时间】:2015-03-16 01:36:44
【问题描述】:

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

【问题讨论】:

    标签: hook analysis packet pcap ndis


    【解决方案1】:

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

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

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

    【讨论】:

    • 我尝试了带有端口的不同数据包进行处理。但是端口号是非常可变的。并且 Internet 浏览器 chrome 和资源管理器也使用相同的远程端口号 80 ......但 PID 不一样......我应该开发 WFP 以使用数据包中的 pid 吗?是不是在Winpcap库中?我没时间……
    • TCPView 可能使用 LSP,因为它是为旧版本的 Windows 设计的。 TCPView 不能写成 NDIS 驱动程序。
    • 那么... WFP 也是像 NDIS 一样的驱动程序?我还搜索了 wfp 来开发这项工作,但没有示例代码和其他信息...如果 WFP 是解决我的问题的一种方法,我会尝试尽快开发 WFP...
    • WFP 是一个驱动平台,类似于 NDIS。世界粮食计划署样本在这里:code.msdn.microsoft.com/windowshardware/…
    • wfp 用户模式 ​​== 用户应用程序?我搜索了很多关于 wfp 的信息,但是没有任何迹象可以开发从数据包中搜索 pid...
    猜你喜欢
    • 2014-06-29
    • 2016-12-10
    • 2018-08-05
    • 2015-10-05
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 2011-06-22
    • 2016-02-26
    相关资源
    最近更新 更多