問題タブ [wfp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
617 参照

c - WinDivert が自己構築された ICMP パケットを送信できませんでした

みんな。WinDivert を使用して ICMP パケット送信機を開発しました。192.168.1.232 が私のマシンで、192.168.1.158 がリモート マシンです。すべての関数が成功を返しますが、Wireshark を使用しているリモート マシンで ICMP パケットを確認できません。このコードに何か問題がありますか? どうも。

0 投票する
1 に答える
795 参照

c# - WinDivert 1.0.5 DivertRecv() メソッド 最後のエラー 998 を取得

私は WFP (Windows フィルタリング プラットフォーム) 用の C# ラッパーを作成しました。このインポート構文は WinDivert 1.0.5 を使用します。

そして、この関数呼び出し構文

しかし、関数はすべての呼び出しで false を返し、GetLastWin32Error() はエラー コード 998 を取得します。助けてください。

0 投票する
1 に答える
430 参照

c++ - Dev C++ を使用した WFP の開発

このサンプル WFP アプリケーションを実行したいのですが、Dev C++ (5.5.3) でコンパイルしようとすると、コンパイラは次のように言います。

すべての WFP API 関数と構造体で同じです。ヘッダーに何かを含めるか、コンパイラー・パラメーターを追加する必要があると思われますが、それに関する情報がどこにあるのかわかりません。

0 投票する
1 に答える
139 参照

java - ネットワークパケットをキャプチャし、プロセス(プログラム)名に従ってグループ化します

私はいくつかの調査を行っており、コンピューターから送信されるすべてのパケットをキャプチャし、それがどのプロセスから来たのかを判断する必要があります。別の世界では、Microsoft ネットワーク モニターのようなもの。開始する正しい方法を教えてください。

0 投票する
1 に答える
1622 参照

c - プリコンパイルされたドライバー モジュールを使用して WinDivert プログラムを作成するにはどうすればよいですか?

プログラムを作成するには、 WinDivertを使用する必要があります。コンパイル済みの WinDivert.dll、WinDivert.sys、WinDivert.inf、および WdfCoInstaller*.dll ファイルを使用する C プログラムを作成およびコンパイルする方法がわかりません。

たとえば、いくつかの変更を加えてパススルーの例をコンパイルしたい場合、どうすればよいですか?

プリコンパイルされたドライバ モジュールは、プリコンパイルされたサンプルと同様に正常に動作するように見えますが、独自のプログラムを作成する必要があります。

注: Windows 8.1 を使用しています。Visual Studio 2013 Ultimate と WDK 8.1 がインストールされています。Visual Studio で動作するとは思わないか、動作する場合、その方法がわかりません。

0 投票する
1 に答える
4532 参照

c - Windows でドライバーのインストールを妨げているのは何ですか?

WinDivertのプリコンパイル済みファイルを使用する C プログラムを Windows で作成しました。私のプログラムは WinDivert の .dll を使用し、.dll の一部の関数は WinDivert.sys ドライバーをインストールします。これに含まれる WinDivert のファイルもいくつかあります (.lib、.inf、および別の .dll)。

問題は、私のコンピューターの 1 つ (Windows 8.1 64 ビット) で、すべてが完全に機能することです。しかし、私のラップトップ (Windows 8.1 64)、友人のラップトップ (Windows 7 64)、または別の Windows 7 64 デスクトップでプログラムを使用しようとすると、ドライバのインストールがブロックされます。すべてのコンピューターで次の理由により、何がブロックされているのか、ブロックされないようにする方法がわかりません。

+管理者プロファイルで実行しています

+管理者コマンド プロンプトでプログラムを実行する

+ファイアウォール、ウイルス対策などを無効にしてみました(ただし、動作するコンピューターではこれらをオンにしても問題なく動作します)

+私の知る限り、私のセキュリティ設定はすべて同じです

+注: ドライバーには有効な署名があります。

ドライバーが 1 台のコンピューターに完全にインストールされ、他の 3 台にはインストールされないのはなぜですか? 何が問題になる可能性がありますか?

0 投票する
1 に答える
3851 参照

c# - マネージ コードから HTTPS をフィルター処理するための Windows フィルタリング プラットフォーム

主に HTTPS で始まる URL をフィルタリングするために、Windows 用のホストベースのファイアウォールを開発したいと考えています。Microsoft が、ファイアウォール/フィルター フック、NDIS、TDI、WSA、Winsock 2 (LSP) などの非推奨の古い技術の代替として WFP を提示していることを知っています。ただし、WFP は現在、ホスト名または URL によるフィルターをサポートしていません。また、WFP は C/C++ のみであり、.NET で使用できる C# ラッパーはありません。

@basil のWinDivertデモ アプリ webfilterを試してみました。これは、TCP ポート 80 (デフォルト HTTP) で IPv4 のアウトバウンド トラフィックのパケットを解析し、サーバー接続をリセット (TCP RST) し、クライアント (ブラウザー) に HTML 応答を送信し、続いて TCP FIN を送信します。コマンドライン引数としてテキストファイルで指定されたブラックリストに登録されたエントリのいずれかに URL が一致し、それ以外の場合はそれらを再挿入する場合...

私の質問は: このコードを変更して、HTTPS (ポートをデフォルトの 443 に変更) と IPv6 をサポートすることはできますか? もしそうなら、マネージ C# コードから呼び出す P\Invoke ラッパー クラスを作成したいと考えています。

Extra : このソリューションは SSH トンネリングを使用してバイパスできますが、バイパスする別の方法はありますか?

0 投票する
1 に答える
815 参照

networking - WFP フィルター: FwpsInjectNetworkSendAsync 経由で送信されたときに生の TCP パケットがドロップされた

カーネル WFP フィルターを FWPM_LAYER_OUTBOUND_IPPACKET_V4 に登録しました。ここで、各 IPv4 NET_BUFFER_LIST をバッファーにコピーし、変更せずにワーカー スレッドから再注入しました。サブレイヤーとして FWPM_SUBLAYER_UNIVERSAL を使用しています。基本的:

sendComplete コールバックから NET_BUFFER_LIST_STATUS() と同様に 0 を返します。

これは UDP と ICMP (応答が返ってきます) では機能しますが、TCP パケットでは機能しません。テストしている仮想マシンから NetMon で SYN が送信されていることを確認できますが、NetMon は外部 (ホスト マシン内) でパケットが送信されていることを認識しません。もちろん、リモートホストからの応答はありません。

IP チェックサム (classifyFn で 0 として取得) を更新しようとしましたが、何も変わりません。TCP チェックサムは、classifyFn が受信した時点で既に正しいものです (NetMon が判断できる限り)。元の nbl、フラット バッファー、および WinDBG で新しく作成された nbl を調べたところ、それらにはすべて IP パケット (0x45 などで始まる) が含まれています。

フィルター用に新しいサブレイヤーを作成する必要がありますか? システム プロセスに関連付けられたワーカー スレッドから sendAsync を呼び出しているため、パケットは破棄されますか?