特定のアプリケーションから送信されたパケットを傍受し、それらのパケットに何が含まれているかを確認するにはどうすればよいですか。そんなことをしたことがなく、自分で学びたいので、どうしたらいいかアドバイスが必要です。
3 に答える
Pcap.Net
Pcap.Netは、C ++ / CLIおよびC#で記述されたWinPcapの.NETラッパーです。ほぼすべてのWinPcap機能を備えており、パケット解釈フレームワークが含まれています。
SharpPcap
SharpPcapは、有名なpcap / WinPcapライブラリに基づく、.NET環境用のクロスプラットフォームパケットキャプチャフレームワークです。これは、C#やVB.NETなどの任意の.NET言語を使用してパケットをキャプチャ、挿入、分析、および構築するためのAPIを提供します。
Pcap.NetとSharpPcapの比較
Wireshark
これは、ネットワークのトラブルシューティング、分析、ソフトウェアと通信プロトコルの開発、および教育に使用されます。そして、これは私が今まで使用した中で最も用途の広いパケットスニファだと思います。
フィドラー
Fiddlerは、コンピューターとインターネット間のすべてのHTTP(S)トラフィックをログに記録するWebデバッグプロキシです。Fiddlerを使用すると、トラフィックを検査し、ブレークポイントを設定し、着信データまたは発信データを「フィドル」することができます。Fiddlerには、強力なイベントベースのスクリプトサブシステムが含まれており、任意の.NET言語を使用して拡張できます。最近、FiddlerはTelerikに追い抜かれました。しかし、それはまだ無料のAFAIKです。
C#スニファーソケット作成の例。
mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw,
ProtocolType.IP);
// Bind the socket to the selected IP address
mainSocket.Bind(newIPEndPoint(IPAddress.Parse(cmbInterfaces.Text),0));
// Set the socket options
mainSocket.SetSocketOption(SocketOptionLevel.IP, //Applies only to IP packets
SocketOptionName.HeaderIncluded, //Set the include header
true); //option to true
byte[] byTrue = newbyte[4]{1, 0, 0, 0};
byte[] byOut = newbyte[4];
//Socket.IOControl is analogous to the WSAIoctl method of Winsock 2
mainSocket.IOControl(IOControlCode.ReceiveAll, //SIO_RCVALL of Winsock
byTrue, byOut);
//Start receiving the packets asynchronously
mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None,
newAsyncCallback(OnReceive), null);
Fiddlerを使用して、HTTPトラフィックhttp://www.fiddler2.com/fiddler2/を確認できます。
または、 Wireshark http://www.wireshark.org/を使用して、より高度な情報を入手してください。
パケットアナライザの概要はこちらhttp://en.wikipedia.org/wiki/Packet_analyzer
あなたが達成しようとしていることの詳細は、私たちがアドバイスするのに役立ちます。