嗅探所选端口上的数据 - C#

时间:2014-08-04 07:20:16

标签: c# sockets networking wireshark winpcap

我有一个应用程序在特定端口上运行。我无法访问此应用程序,但我知道它的作用。现在,此应用程序正在侦听一个特定端口并处理该端口上的数据

现在,我已经分配了使用所有数据详细信息记录在该端口上接收的所有数据包的任务。我使用了wireshark并可以应用过滤器来检查特定端口上的数据。所以我在这里假设我一直在创建这种剪切程序,所以我可以得到所有的数据包细节。我已经搜索了堆栈溢出并提出了

  1. Code project
  2. Stack overflow
  3. 现在我已经对样本进行了评估,并且可以看到它为我提供了数据包,但它会侦听系统的所有端口。不在特定端口上。有人可以帮助我实现我的解决方案吗?基本上如果我会听所有端口,那么服务器上运行的应用/程序很多,这可能会成为瓶颈。谢谢大家。

1 个答案:

答案 0 :(得分:1)

在MJsniffer.MJsnifferForm类中,您有ParseData方法 - 在第一步它将接收到的字节转换为IPHeader对象,然后在ProtocolType字段上有一个巨大的SWITCH-CASE。在SWITCH内部创建TCPHeader或UDPHeader并将其添加到表单上的TreeView中 - 您可以通过SourcePort / DestinationPort字段tcpHeader / udpHeader过滤包。

此外,如果您已熟悉WireShark,那么您可以轻松切换到Pcap.NET包装器(它们使用相同的数据包捕获库 - WinPcap)