c# - 捕获数据包然后丢弃数据包 IPS 系统

标签 c# c++ matlab neural-network libpcap

在 windows 中是否有任何可能的方法像 unix 中的 iptables 一样像真正的 IPS(入侵防御系统)一样“丢弃”数据包。

此外,如果我使用的是 matlab,是否有一种方法可以“捕获网络上的数据包”并将它们提供给神经网络?也就是 Windows 上的 Matlab。

我正在努力理解 libpcap 如何“捕获”数据,但您却不能实时“丢弃”数据?

相当烦人的 snort 无法做到这一点,snort 在 windows 上仅充当 IDS,但在 linux 上充当 IDS/IPS,因为它能够为 iptables 设置正确的规则。

最佳答案

对于 Windows 7/Vista,您可以使用 Windows 过滤平台 (WFP) API 来执行简单的数据包过滤,类似于使用 iptables 可以实现的功能。但是,API 有点冗长。

对于更复杂的过滤,例如说有效负载解析/检查的 URL 过滤,您需要 (1) 编写设备驱动程序,例如 WFP 标注驱动程序,或 (2) 使用可以将数据包转移到用户模式应用程序的第三方包。

对于后者,有 WinDivert (GLPv3) 和 WinpkFilter (商业许可证)。这两个包都是 C/C++,因此您需要编写适当的 MatLab 绑定(bind)。 披露:我是 WinDivert 的作者。

警告技术:像 Winpcap 这样的软件包不会,也不能因为它使用的驱动程序类型(准确地说是 NDIS 协议(protocol)驱动程序)而丢弃数据包。协议(protocol)头只能看到数据包的拷贝,无法阻止原始数据包。为此,他们需要将 Winpcap 驱动程序重新实现为 NDIS IM 或 LWF 驱动程序。

关于c# - 捕获数据包然后丢弃数据包 IPS 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371052/

相关文章:

c# - 如何在不乘以 ClosedXML 中的 100 的情况下以数字格式附加 % 符号

c# - C#如何解决不同的扩展方法重载?

c# - 从 NSDictionary 中获取浮点值

c++ - Ogre3D 奇怪的行为

matlab - 获取图像内矢量的所有像素坐标

c# - 在 Discord.net 中连接到语音 channel 并发送音频

c++ - 具有不可 move 的默认可构造值类型的 map/unordered_map

c++ - 带有函数回调的可变数量的参数(va_list)?

matlab - 在Matlab中高效计算元胞数组元素之间的成对交集

c++ - 试图仅在 C++ 中模拟 Matlab "unique"函数