2016-07-25 25 views
1

特定のWebサイトに送信される前に、特定のパケット内に何かを追加/編集するツールを作成しようとしています。TCP/UDPパケットのキャプチャと編集

今のところ私はこのフィルターを適用するためにWpe Proを使用していました。

このツールを作成するためにC#に類似したものがありますか?

+1

これは多少幅が広い場合でも、私は可能な方法にも興味があります。私たちはTCP/UDPパケットの編集について話していると思います。また、SSL接続を使用している場合は、Point of Interestがパケットを編集しています。 – C4u

+0

はい、私はTCP/UDPパケットについて話しています:) – d4ne

+0

[Pcap](https://www.winpcap.org/)を使用する必要があるので、[this](http://pcapdotnet.codeplex .com/SourceControl/latest).NET実装。 – lokusking

答えて

3

実際にこれを行う一般的な方法はありません。あなたの状況に合っているかどうかを検討し、見なければならない可能性はいくつもあります。たとえば、Pcap.NET(コメントに記載されているように)を使用してHTTPを使用して送信されるパケットを簡単に編集できます。 Pcapを使用してパケットを変更する際のガイドとなるWeb上には数多くの例があります(例:公式のPcap.NETフォーラムでthis discussion)。

しかし、パケットがHTTPS(SSL/TLS)を使用している場合、送信される実際のデータであるペイロードは暗号化され、これはバイパスされる可能性があります。 1つまたは複数のprecondition(s) of SSL are brokenまたはsslstrip (python)のようなツールを使用してください。 sslstripは、HTTPSが要求されていても、ソケットを強制的にHTTP経由で送信しようとしますが、これは動作するとは限りません。

個人的には、私はいつもネットワーク関連のものでもソケットに触れないように常に努力します。特にHTTPSが必要な場合は、おそらく今のところ理解しているように、これはバイパスするのがかなり難しいためです。どんなプログラムであなたが壊れようとしているのか分かりませんが、この答えに役立つような気がしました。

HTTPの場合、hooksWindows Socket APIという簡単なプログラムを簡単に作成できます。 sendの機能、場合によってはrecv(受信)機能を調べる必要があります。必要に応じて、ペイロードを変更したり、別のペイロードに置き換えることもできます。 アプリケーションがレイヤー7(アプリケーションレイヤー)、6(プレゼンテーションレイヤー)、および5(セッションレイヤー)を処理するので、winsock.send関数を介して送信されるデータは既に暗号化されています(SSL/TLSが使用されている場合)。 where SSL gets applie d)を使用して計算される。 とレイヤー5と4の間。

HTTPSでは引き続きフックを使用できますが、接続を処理するアプリケーションの部分をフックして、接続/セットを初期化する前に(変更された)ペイロードを適用する必要があります。ペイロード。これは難しいと思うかもしれませんが、あなたが勉強して時間を持っていれば、実際にやるのはかなり簡単です。

+0

目標は(少なくとも私にとって)いくつかのデータで一般的なブラウザの動作を処理することです。 SSLに関する多くの問題に直面している場合、別の方法はブラウザ自体に接続するだけです。しかし、それらの多くが異なっているので、私はこれを複数のブラウザ=多くの作業のためにコード化する必要があります。/ – C4u

+0

ブラウザがHTTPを使用してWebサイトにアクセスする場合は、説明されている方法のいずれかを使用できますが、HTTPSを使用してWebサイトにアクセスする場合は、ペイロードを復号化し、変更し、(再)暗号化するために、ブラウザをフックする必要があります。 –

+0

うーん、私が望んでいた方法では解決されませんでしたが、このコメントでここでやっていると思います。それをクリアしていただきありがとうございます。病院では、カウントダウンが0(22時間)になるまで報酬を設定しました。 – C4u

関連する問題