4

過去に、Winsockのrecvfrom()関数を迂回し、プライマリアプリケーションからの着信トラフィックをドロップ/操作するC++プラグインを作成しました。

ここで、すべてのインターフェイスをリッスンし、着信UDPパケットを読み取り、パケット構造がターゲットに使用されている既知のエクスプロイトの構造と一致する場合にそれらをドロップするスタンドアロンアプリケーションを作成したいと思います。

これを行うための最良の方法は何でしょうか?これは、NICに大量の静的IPv4アドレスが割り当てられているWindowsServer2008マシンで使用されます。Winsockを迂回することを検討していましたが、これは機能豊富なアプリケーションではないため、これを実装する最も簡単な方法はどれでも素晴らしいでしょう。

Pcap.Netを使用してこれを実装し始めましたが、その方法でパケットをドロップできないことに気付いたため、これにどのようにアプローチするかがよくわかりません。

4

2 に答える 2

3

フィルタリングネットワークはおそらくOSカーネルで動作する低レベルのコードにバインドされるため、C#では最も簡単なタスクではない可能性があります。

Windows Server 2008には、カスタムパケットフィルターを設定するためのAPIもいくつかあります。

おそらくp/invokeでラップ可能ですが、C++とネイティブコードを使用することをお勧めします。

あなたにとって興味深いかもしれない追加の読み物はここcodeprojectにあります。

于 2012-03-04T14:27:20.717 に答える
1

EasyHookを使用したい。心配する必要があるのは実際には1つの主要なアプリケーションだけであると言う場合は、send()とreceive()をフックする単純なユーザーモードフックを作成できます。oSpyがこれをどのように行うかを見ることができます(oSpyのプロジェクトはかなり大きいですが)。EasyHookを使用すると、フックが非常に簡単になります。

于 2012-03-05T07:48:50.457 に答える