特定のアプリケーションから送信されたパケットを傍受し、それらのパケットの内容を確認する方法を知りたいのですが。こんなことをしたことがないので、自分で学びたいので、どうしたらいいかアドバイスが必要です。
Pcap.Netは、C++/CLIおよびC#で記述されたWinPcapの.NETラッパーです。ほとんどすべてのWinPcap機能を備え、パケット解釈フレームワークを含みます。
SharpPcapは、有名なpcap/WinPcapライブラリに基づく、.NET環境用のクロスプラットフォームパケットキャプチャフレームワークです。 C#やVB.NETなどの.NET言語を使用して、パケットをキャプチャ、注入、分析、構築するためのAPIを提供します。
ネットワークのトラブルシューティング、分析、ソフトウェアと通信プロトコルの開発、および教育に使用されます。そして、これは今まで使用した中で最も用途の広いパケットスニファだと思います。
Fiddlerは、コンピューターとインターネット間のすべてのHTTP(S)トラフィックをログに記録するWebデバッグプロキシです。 Fiddlerを使用すると、トラフィックを検査し、ブレークポイントを設定し、着信データまたは発信データを「いじる」ことができます。 Fiddlerには、強力なイベントベースのスクリプトサブシステムが含まれており、任意の.NET言語を使用して拡張できます。最近、フィドラーは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
あなたが達成しようとしていることの詳細は、私たちが助言するのに役立ちます。