1

问候,

这个月我将开始写我的硕士论文。我的论文主题是关于网络安全。

我需要处理网络接口和数据包。

我以前使用 shappcap 与数据包交互,但我不确定 C# 是否是处理网络编程和数据包的最强大的语言。

我使用了wireshark,我看到了它的强大功能,而且正如你所知,winsharp 是使用C++ 开发的开源软件。

我不确定是否应该使用 C# 或 C++ 进行网络安全编程,我希望您了解最好的语言可能是用于网络编程和数据包交互。

我应该使用 C#、C++ 还是 java 或其他东西?

请给我你的建议。

谢谢,

更新 ..........................

我将通过获取每个数据包并读取其上的每个字段然后使用这些值来进行不同的数据包挖掘,并且在同一阶段我将修改一些数据包值然后将它们重新发送回去。

我想控制数据包,因为它由网络接口​​接收,直到它传递到应用程序层。

4

5 回答 5

3

您几乎可以使用任何您想要的语言进行网络编程。如果您对所提到的所有语言都同样熟悉,那么您应该确定您将与哪些系统库或 API 交互。例如,如果您将在 Unix 系统上进行数据包级网络编程,那么 C 可能是您最好的选择。如果您想与 Wireshark 集成,请使用 C++。如果要使用 Apache Commons 组件,请使用 Java。我建议您在尝试决定使用哪种语言之前,为您的实际程序提出一组更具体的要求。

于 2010-05-03T05:30:27.037 回答
3

WireShark 使用 WinPCap,所以你也可以走这条路。

对于安全应用程序,这是一个入侵检测系统还是您真的想要丢弃违规数据包?WinPCap、SharpPCap 等不允许您丢弃数据包,为此您需要查看某种中间驱动程序或查看 Windows 过滤平台 (WFP)
http://www.microsoft.com/whdc/device/network /WFP.mspx

恕我直言,如果您可以找到回调到用户模式并允许您从 C# 或 C++ 过滤数据包的回调驱动程序,这对于实验目的等可能很好,但对于生产解决方案,我认为您需要坚持到内核​​级别,以确保您可以跟上 peek 音量。

于 2010-05-03T05:30:45.057 回答
0

使用 C++、Boost 和 Poco,你可以做你想做的事。Boost asio 是:便携式网络,包括套接字、定时器、主机名解析和套接字 iostream。Poco 库还为网络、密码学 NetSSL 等提供解决方案。有关更多信息,您可以访问 www.boost.org 和 www.pocoproject.org

于 2010-05-03T07:28:06.980 回答
0

如果您愿意,可以使用 java - jpcap 效果很好。

于 2010-05-03T08:29:53.547 回答
0

我建议使用 C#,因为有一个名为Pcap.Net的非常强大的库,它用 .NET 代码包装了 WinPcap。这应该使您可以轻松地接收、发送和解释不同协议的不同数据包。

于 2010-05-04T20:31:41.343 回答