wfp流量监控之监控流量不全

在看了网上使用wfp写的流量监控后,自己也写了一个,大概思路是使用ale层绑定至传输层进行流量监控,如果先启动驱动服务,在启动应用基本就可以监控到网络流量。但是如果先启动应用,此时在加载驱动,该pid的流量就变得非常不准。虽然是在ale层进行pid绑定,先打开应用后启动驱动,那么应该监控不到该pid。现实是也有pid信息,但是流量速率不正常,会少很多
其实有点不理解的是,先开启应用,在开启驱动后,打印了下传输层的下行包,发现远远小于实际的流量包。这一点为什么会这么少

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

你的问题可能是由于驱动程序启动顺序不正确所致。我建议你在安装驱动程序时设置为自动启动,这样就可以保证驱动程序总是在应用程序之前启动。另外,你也可以考虑使用WMI或Winpcap等其他流量监控工具来解决你的问题。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7659794
  • 除此之外, 这篇博客: 病毒制作实践小记:运行关机、蓝屏炸弹、进程关闭、拓展名病毒中的 方法一:利用进程的PID结束进程 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 命令格式:ntsd -c q -p pid
    
    命令范例:ntsd -c q -p 1332 (结束explorer.exe进程)
    

    范例详解:explorer.exe的pid为1332,但是如何获取进程的pid呢?

    在CMD下输入TASKLIST就可以获取当前任务管理器所有进程的PID。

    或者打开任务管理器,在菜单栏,选择“查看”->“选择列”,在打开的选择项窗口中将“PID(进程标识符)”项选择钩上,这样任务管理器的进程中就会多出PID一项了。PID的分配并不固定,是在进程启动是由系统随机分配的,所以进程每次启动的进程一般都不会一样。

引用ChatGPT部分参考:
这可能是因为先启动应用程序时,该程序会进行某些网络连接,而此时驱动程序还没有启动,因此无法捕获这些连接的信息。这导致某些流量未能捕获或被错误地匹配到其他PID。

要解决这个问题,您可以尝试在启动驱动程序之前先使用命令行启动应用程序,这样可以确保在应用程序连接网络之前,驱动程序已经加载并准备好捕获数据。

另外,还可以尝试在驱动程序中添加特殊逻辑,在启动时自动捕获并匹配现有的网络连接,以确保所有连接都被正确地监控。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

在使用WFP进行流量监控时,可能会出现监控流量不全的情况。这可能是由以下一些原因导致的:

1. 应用程序使用了加密或压缩技术

如果应用程序使用了加密或压缩技术,可能会导致WFP无法正确地监控流量。在这种情况下,建议使用其他监控工具,如Wireshark等。

2. 未绑定到所有进程

如果WFP仅绑定到特定进程,而其他进程也在使用网络,那么这些进程的流量将无法被监控到。为了解决这个问题,可以考虑将WFP绑定到所有进程,以确保所有进程的流量都可以被监控到。

3. 驱动加载顺序不正确

如果驱动先于应用程序加载,可能会导致WFP无法正确地监控流量。在这种情况下,建议先启动应用程序,然后再加载驱动。

4. WFP配置不正确

如果WFP配置不正确,比如过滤规则设置不正确,可能会导致监控流量不全。在这种情况下,建议检查过滤规则设置,并确保其正确。

5. 硬件或网络问题

如果硬件或网络出现问题,可能会导致WFP无法正确地监控流量。在这种情况下,建议检查网络连接和硬件设备,并确保它们正常工作。

希望以上方法能够帮助您解决问题。如果仍然无法解决问题,可以提供更多的错误信息和具体环境的信息,以便更好地帮助您解决问题。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢