我一直想知道软件防火墙是如何在幕后工作的,并且希望能够编写自己的自定义工具来分析或拦截操作系统发送或接收的数据包。我相当熟悉核心网络原则;如果我想编写适合网络堆栈的软件,就像防火墙一样,我只是不知道从哪里开始。谁能给我一些指示?
如果这可以使用 C# 来完成,我会特别感兴趣,但我也可以使用其他语言。我主要关注 Windows,但想知道是否还有任何跨平台库。
编辑使用 NDIS 驱动程序(如 Wireshark 所做的那样)听起来是一个不错的选择,而且 Vista 的数据包过滤功能听起来很简洁,但防火墙是如何做到的,比如在 Windows XP 上呢?他们不必安装我知道的特殊驱动程序。