0

許可したアプリケーションを除いて、アプリケーションがインターネットにアクセスするのを制限する単純なファイアウォールを作成してみたいと思います。netlimiterのように。したがって、ホワイトリストに登録されているアプリケーションのインターネットアクセスを許可し、残りのアプリケーションの接続を切断する必要があります。これはc#またはvb.netで可能ですか?可能であれば、私を正しい方向に向けてください。

ありがとう

4

3 に答える 3

1

まあ、terR0Q が言ったように、C++ または別の低レベルのプログラミング言語を使用する必要があります (低レベルとは、機械語に近いことを意味します)。

.NET に固執したい場合、選択肢は非常に限られています。1 つには、WinApi を多用する必要がありますが、これは .NET からはあまり便利ではありません (もちろん不可能ではありませんが) - VC++ .NET の使用を検討することをお勧めします - また、マネージ フックにEasyHookを使用することもできます。これは確かに良い解決策ではないことに注意してください。実際、チュートリアルでは、セキュリティ ソフトウェアでの使用について警告されています。

一部の (商用の) フック ライブラリが売り上げを伸ばすために宣伝しているものとは異なり、ユーザー モードのフックは、安全な方法で追加のセキュリティ チェックを適用するためのオプションにはなり得ません。専用のプロセスを「サンドボックス化」したいだけで、そのプロセスが EasyHook についてよく知っていて、実際にはそのプロセスが EasyHook について知らない場合、これは成功する可能性があります。ただし、ユーザー モードのフックに基づいてセキュリティ ソフトウェアを作成しようとしないでください。うまくいかないことを約束します...これが、EasyHookがいわゆる「システム全体」のインジェクションをサポートしていない理由でもあります。これは実際には単なる幻想です。 . しかし、この錯覚を維持したい場合は、そうしようとしている他の (商用) ライブラリに固執するかもしれません…</p>

チュートリアルのその他のヒント:

カーネル モードの傍受に基づいてセキュリティ アプリを作成できるようにする PatchGuard API の購入を検討する必要があります。カーネル モード フック (または PatchGuard API) は、追加のセキュリティ チェックを適用する唯一のオプションです。Windows Vista 以降、Windows Filtering Platform やその他の Vista 固有の API もセキュリティ ソフトウェアの作成に役立ちます。

ご覧のとおり、ここでは .NET を使用しても実際には機能しません。それでも EasyHook を試してみたい場合は、先に進んでください。ただし、危険性を念頭に置いてください。ファイアウォールのようなものを試みる前に、C++ を学んで WinApi についての深い知識を得ることをお勧めします。

于 2010-12-18T11:56:27.193 に答える
0

このファイアウォールのシステムレベルのレイヤーを実装するには、C++やWINAPIなどの低レベルのツールが必要です。

于 2009-11-24T08:37:02.330 に答える
0

PacketXは、パケットを盗聴するための単純な小さなライブラリです。ただし、ネットワークを完全にブロックできるかどうかはわかりません。ネットワークアダプターを無効にする方法を考え出し、必要に応じてパケットを転送するネットワークアダプターとしてプログラムを表示させる必要があります。

編集:私の悪い。「PacketX を使用してネットワーク トラフィックをブロックし、ファイアウォールを構築することはできません。」

于 2009-10-26T11:50:35.610 に答える