問題タブ [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 に答える
825 参照

c++ - カーネル モードの WFP コールアウト ドライバーから NtUserPostMessage を呼び出す方法は?

WFP (Windows Filtering Platform) コールアウト ドライバーを既存の製品に適合させるには、ウィンドウ メッセージを既存のアプリケーションに送信する必要があります。カーネル モードの WFP ドライバーからこれを行う方法はありますか?

ここには、カーネル モード ドライバーから NtUserPostMessage を呼び出すための手法がありますが、それが WFP ドライバーに適用されるかどうかはわかりません。また、Windows 8 よりも前のものであるため、新しい OS に適切な syscall アドレスがありません。

既存のアプリの一部を再コーディングする必要がなくなるため、ウィンドウ メッセージを送信する方法 (より正確には、遅延が発生しないように投稿する方法) を受け入れます。

0 投票する
2 に答える
4153 参照

filter - Windows Filtering Platform ユーザー モードまたはカーネル モード?

Windows フィルタリング プラットフォームを使用しています。パケットやネットワーク イベントを監視したり、URL をブロックしたりするトラフィック フィルター、セキュリティ マネージャーを作成したいと考えています。ほとんどの WFP 関数は、ユーザー モードまたはカーネル モードから呼び出すことができます。カーネル モードの関数を使用してフィルターを作成するか、ユーザー モードの関数を使用してフィルターを作成するか迷っています。カーネル モード ドライバーを使用することによってのみキャプチャできるネットワーク アクションの種類はありますか? この点で私を助けてください。

この問題についてご協力いただきありがとうございます

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

windows - 一部のマシンでは、WFP カーネル モード ドライバーの DriverEntry の呼び出し方が異なりますか?

自分のアプリケーション用に Windows Filtering Platform MSNMNTR サンプルにコードをいくつか追加しましたが、構造は同じままです。Win8 64 ビット用のドライバーとアプリケーションをコンパイルし、ドライバーに製品署名を付けました。コードをビルドした (仮想) マシンでは、サンプルは正常に動作し、正しく監視されます。inf、sys、および exe を別のマシンにコピーすると、サンプルは監視しません。traceview の出力から、2 番目のマシンでは DriverEntry() が呼び出されていないことがわかります。そのため、フロー制御が設定されていません。2 台のマシンは Win8 のリリース バージョンを実行しています。ドライバーはマシン #1 で正常に動作するため、新しいコードの問題ではないようです。また、マシン #2 で署名の強制をオフにしても、署名の問題ではないようです。問題。コードのリリース バージョンとデバッグ バージョンの両方に同じ問題があります。コードをセットアップして実行するために使用する手順は次のとおりです。この動作を引き起こす可能性のあるものは何ですか?

  1. ドライバー .pdbs を traceview のフォルダーにコピーします。
  2. .inf を右クリックし、[インストール] を選択します。
  3. 昇格したコマンド プロンプトから「net start msnmntr」を実行します。
  4. 管理者として traceview を起動します。
  5. 管理者特権でのコマンド プロンプトから "monitor monitor "C:\Program Files\Internet Explorer\iexplore.exe"" を実行します。

PS私はまだこれにwindbgを入れていませんが、試したらすぐに結果で質問を更新します.

編集して追加: OK、両方のマシンでカーネルモード デバッガーを実行したところ、動作に違いが見られました。まず、両方のマシンで DriverEntry が呼び出されます。私はそれについて間違っていました。ただし、コードが機能する (つまり、Web トラフィックを監視する) マシンでは、monitor.exe が実行されると DriverEntry が呼び出され (上記の手順 5)、コードが機能しないマシンでは、「net start msnmntr」(上記の手順 3) が実行されます。

0 投票する
2 に答える
3840 参照

visual-studio - Windows ドライバー開発: Visual Studio 2012 に配置オプションがありません

MSDN から入手した WFP サンプルをコンパイルしてデプロイしようとしましたmsnmntrが、すべてのサンプルで同じ問題が発生します。

Visual Studio 2012 Ultimate で欠落しているドキュメントの手順が 1 つあるため、これとすべてのサンプルはデプロイに失敗します。

それは言います:

1) ドライバー パッケージのプロパティ ページを開きます。ソリューション エクスプローラーでドライバー パッケージ プロジェクトを右クリックし、 [プロパティ] を選択します。

2) ドライバー パッケージのプロパティ ページで、[構成プロパティ]、[ドライバーのインストール]、[配置] の順にクリックします。

ただし、次の画面でわかるように、Visual Studio 2012 にはそのようなオプションはありません。

ここに画像の説明を入力

私が間違っていることを知りたいです。

0 投票する
3 に答える
3516 参照

windows - カーネル モード ドライバーとユーザー モード アプリケーション間の双方向通信?

カーネル モードの WFP ドライバーとユーザー モードのアプリケーション間の双方向通信が必要です。ドライバーは、アプリケーションに URL を渡すことによって通信を開始し、アプリケーションはその URL の分類 (エンターテイメント、ニュース、アダルトなど) を行い、そのカテゴリーをドライバーに返します。ドライバーはフィルター機能のカテゴリーを知る必要があります。これは、その情報に基づいて特定の Web ページをブロックする可能性があるためです。ドライバーが URL と GUID を使用して完了する I/O 要求を作成するスレッドがアプリケーションにあり、アプリケーションはその GUID の下のレジストリにカテゴリを書き込み、そこでドライバーがそれを取得しました。残念ながら、ドライバーの検証者が指摘したように、Zw レジストリ機能は PASSIVE_LEVEL で実行する必要があるため、これは不安定です。マップされたメモリバッファで同じことをしようと考えていましたが、そのための割り込み要件が何であるかわかりません。また、レジストリ関数呼び出し前の割り込みレベルを下げることも考えましたが、その副作用についてはわかりません。

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

kernel - WFPのコールアウトのclassifyFnで指定されたIPアドレスのバイト順序は何ですか?

コールアウトのclassifyFnでは、次のコードを使用してリモートIPアドレスを取得できます。

また

ただし、MSDN、OSRなどからIPアドレスの「バイトオーダー」を指定するためのドキュメントが見つかりません。

次のリンクは私のものと同じ質問ですが、答えはありませんでした。

http://www.osronline.com/showthread.cfm?link=225090he

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

c - 「拒否」と「ハードブロック」の違いは何ですか?

次のコードは「拒否」、「ハード ブロック」、またはその両方と呼ばれますか?

この問題に関するドキュメントはあいまいです。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa364008(v=vs.85).aspxにアクセスしてください。

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

virtualization - WFP の FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V4 レイヤーのコールアウト ドライバーでデータを調べる

仮想マシンから送信されたパケットをフィルター処理する必要がある Hyper-V 2012 用のコールアウト ドライバーを作成しています。

WFP の FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V4 レイヤーにフィルターを追加しました。コールアウト関数は、NET_BUFFER_LIST に型キャストしているパケット バッファを受信します。データポインターを取得するために次のことを行っています

pNetBuffer = NET_BUFFER_LIST_FIRST_NB((NET_BUFFER_LIST*)pClassifyData->pPacket); pContiguousData = NdisGetDataBuffer(pNetBuffer, NET_BUFFER_DATA_LENGTH(pNetBuffer), 0, 1, 0);

パケット データをテストする単純なクライアント サーバー アプリケーションがあります。クライアントは VM 上にあり、サーバーは別のマシンです。私が観察したように、クライアントからサーバーに送信されたデータは切り捨てられ、最後にガベージ値が追加されます。サーバーからクライアントにメッセージを送信する場合、問題はありません。このレイヤーフィルターを追加しないと、クライアントサーバーは問題なく動作します。

コールバック関数は、ipHeaderSize と transportHeaderSize を含むメタデータを受け取ります。これらの値は両方ともゼロです。これらは正しい値ですか、それとも非ゼロであるべきですか?? コールアウト関数でパケットからデータを抽出し、それを安全にさらなるレイヤーに転送するのを手伝ってくれる人はいますか?

ありがとうございました。

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

windows - NDIS プロトコル ドライバー (WinPcap の npf.sys) を LWF または WFP に移植できますか?

みんな。WinPcap の改善を行っています。これで、npf.sys ドライバーを NDIS5.0 から NDIS6.0 に移植しました。LWF (Light-Weight Filter) や WFP (Windows Filter Platform) への移植など、このドライバーを改善する余地はまだありますか? より新しく、より優れたフレームワークを確実に使用したいだけです。

その他の質問は次のとおりです。

LWF は Vista 時代の製品のようで、今では Microsoft からあまり言及されていませんが、本当ですか?

LWF または WFP ドライバーは、NDIS プロトコル ドライバーが実行できることを実行できますか?

LWF や WFP は WDF (Windows Driver Framework) と関係がありますか、それとも WDF と WDM フレームワークの両方と互換性がありますか?

これが移植可能である場合、難易度はどうですか?以前にいくつかの NDIS 中間ドライバーを開発したことがありますが、LWF または WFP はそれより難しいですか、それとも簡単ですか?

ありがとう!