如何在操作系统发送/接收数据包之前分析/拦截数据包?

Phi*_*hil 3 networking network-programming packet-capture

我一直想知道软件防火墙是如何工作的,并且希望能够编写我自己的自定义工具来分析或拦截数据包,然后再由操作系统发送或接收.我非常熟悉核心网络原则; 如果我想编写适合网络堆栈的软件,我就不知道从哪里开始,类似于防火墙的方式.谁能给我一些指示?

如果可以使用C#完成,我会特别感兴趣,但我也可以做其他语言.我主要关注Windows,但想知道是否还有任何跨平台库.

编辑使用NDIS驱动程序(如Wireshark所做的那样)听起来是一个不错的选择,Vista的数据包过滤功能听起来很整洁,但防火墙如何在Windows XP上进行操作?他们不必安装我所知道的特殊驱动程序.

Mic*_*ael 5

在Windows Vista及更高版本中,您可能需要查看Windows筛选平台.在早期版本的Windows中,您需要使用过滤器驱动程序(链接到MSDN页面提到了WFP替换的技术.)