c++ - 在 C#/C++ 中创建数据包过滤器?

标签 c++ c#-4.0 windows-server-2008-r2 packet-capture windows-firewall

在过去,我编写了 C++ 插件,绕过 Winsock 中的 recvfrom() 函数并丢弃/操纵来自主应用程序的传入流量。

我现在希望编写一个独立的应用程序来监听所有接口(interface),读取传入的 UDP 数据包,并在数据包结构与用于攻击我们的已知漏洞利用的结构相匹配时丢弃它们。

执行此操作的最佳方法是什么?这将在 Windows Server 2008 计算机上使用,这些计算机具有分配给 NIC 的大量静态 IPv4 地址。我正在考虑绕过 Winsock,但由于这不是一个功能丰富的应用程序,所以无论哪种最简单的实现方法都很好。

注意 我开始使用 Pcap.Net 实现这个,但意识到我不能那样丢弃数据包,所以我不太确定如何处理这个问题。

最佳答案

这在 C# 中可能不是最简单的任务,因为过滤网络可能会将您绑定(bind)到使用 OS 内核运行的低级代码。

还有some APIs在 Windows Server 2008 中设置您的自定义数据包过滤器。

虽然可能可以在 p/invoke 中包装,但我建议使用 C++ 和 native 代码。

您可能感兴趣的额外阅读在 here on codeproject 上.

关于c++ - 在 C#/C++ 中创建数据包过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9555540/

相关文章:

c++ - 如何理解对象被销毁了?

c# - 将 XML 直接写入磁盘并追加元素

wpf - 在 WPF : Set ValidatesOnDataErrors = true programmatically

c# - 在调用 c++ 代码时出现访问冲突错误是 c#

mysql - 服务器 2008r2 x64 和 ODBC 连接器

windows-server-2008-r2 - Get-VM 对 Hyper-V 没有任何作用

c++ - 程序在哪里为抛出对象分配内存?

c++ - std string 通过迭代器比较两个子字符串

c++ - 在 C++ 中创建和初始化类

Windows Server 2008 r2 中的 SSL 证书错误