問題タブ [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.
html - カーネル、WFP からの HTML 要求を変更しますか?
「Windows Filter Platform (WFP)」を使用してドライバーを開発しました。プログラムは HTML をフィルター処理し、会社のマークのような小さな文字列を本文に追加します。
フィルターは正常に機能しますが、HTTP に次のような問題があります。
Transfer-Encoding: チャンク
その後、Web ページが読み込まれず、Web ブラウザーは「Web ページを表示できません」と表示されました。
HTTP がこのような長さを定義するとき
コンテンツの長さ: 9977
ページは読み込まれますが、HTML の最後に挿入した文字列のサイズで元の HTML のデータが省略されます
これは、データのサイズを変更しているためだと思います。しかし、HTTP HEADER のサイズを変更するだけでうまくいくかどうかはわかりません。
これらの場合にブラウザがどのように機能するかわかりません
何か案が?、
redirect - WFP ALE_CONNECT_REDIRECT レイヤー ブロック フィルターが機能しない
私は WFP でいくつかの作業を行っていますが、FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 レイヤーでフィルターをブロックすることに問題があります。ローカル IP からのトラフィックをブロックする必要がありますが、そうではありません。レイヤーを FWPM_LAYER_ALE_AUTH_CONNECT_V4 に変更すると、フィルターが正しく機能します。
だから私はいくつかの質問があります:
1) FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 レイヤーで指定したローカル IP からのトラフィックをブロックできますか (以下のコードは機能しません)。
2) ale_connect_redirect(または ale_bind_redirect) レイヤーで local_ip(remote_ip) を使用して条件を作成できますか?
ありがとうございました!
c++ - WFP (Windows Filtering Platform ) の WFPSampler を使用して特定のパケットをリダイレクトする方法
PC のローカル プロキシにインターネット接続をリダイレクトする方法を教えてください。
以下のURLからWFPSamplerを入手しました。
https://github.com/Microsoft/Windows-driver-samples/tree/master/network/trans/WFPSampler
IE のプロキシ設定を変更せずに、WFPSampler を使用して PC のローカル プロキシにインターネット接続をリダイレクトしたいと考えています。私のシステムは以下です。
[システム] OS: Windows 8.1 (192.168.1.1) ローカルプロキシ: squid (ポート:3128)
[背景] 以下のコマンドを実行しました。しかし、うまくいきませんでした。
WFPSampler.exe -s BASIC_PACKET_MODIFICATION -l FWPM_LAYER_OUTBOUND_TRANSPORT_V4 -ipla 127.0.0.1 -iprp 80 -mpdp 3128 -ipp TCP -v ご協力ありがとうございます
よろしく、YN
tcp - Windows Filtering Platform - TCP セッションのバイト カウントの検索
Windows で Windows Filtering Platform コールアウトを使用して TCP 接続を追跡しています。ALE 確立レイヤーとエンドポイント クロージャー レイヤーのフィルターは、接続の開始と終了を検出するのに最適です。ただし、各方向のトラフィックのサイズと、できればパケット数も知る必要がありますが、閉鎖情報でそれを見つけることができませんでした。
ストリーム レイヤーを使用して各パケットを監視することは可能ですが、カーネル空間でセッション テーブルを維持し、各パケットのセッションを常に更新することは、多くのオーバーヘッドと複雑さを追加するため、魅力的ではありません。
WindowsでWFPを使用してTCPセッションのバイト数を効率的に取得する方法を知っている人はいますか? 代替案も歓迎します。
c# - Windows で特定のドメイン名へのネットワーク接続をフィルタリングする方法
デフォルトですべてのネットワーク接続をブロック/許可し、特定のドメイン名 (google.com など) をホワイトリスト/ブラックリストに登録する Windows サービスを実装したいと考えています。
Windows Filtering Platform を見ましたが、ドメイン名でフィルタリングできず、正確な IP でのみフィルタリングできるようです。問題は、ドメイン名に対応する IP が時間の経過とともに変化する可能性があり、1 つのドメイン名に対して複数の IP が存在する可能性があることです。
ドメイン名でこのフィルタリングを行うにはどうすればよいですか?
windows - WFP StmEdit がインバウンド トラフィックのコールアウト関数を呼び出さない
Microsoft の Windows Filtering Platform stmedit サンプルを機能させようとしていますが、問題が発生しています。
レジストリで InspectOutbound フラグをオンにすると、EditInline を 1 に設定し、InspectionPort を 80 に設定し、StringToFind を A に、StringToReplace を B に設定し、プロキシを使用して、www.A.com に移動すると www.B.com にリダイレクトされます。宛先がペイロードの一部に移動されるため、予想されます。
レジストリの InspectOutbound フラグをオフにすると (インバウンド パケットを検査するために)、まだ EditInline を使用し、InspectionPort=80 のままで、単純なhttp://www.somewebsite.com/somepage.htmlページにアクセスすると、機能がないことがわかります。ドライバのソース コードから呼び出されます。WireShark で、パケットが実際にポート 80 を通過していることを確認できます。
ソース コードのすべての関数に DbgPrint() 呼び出しを追加して、基本的なコード フローをすべてのデバッガーを使用せずに確認しました。
どんな助けでも本当に感謝しています。
windows - HTTP トラフィックを監視するためにカーネル モード ドライバーを作成する必要はありますか?
HTTP トラフィックを監視し、HTTP ストリームが特定の条件を満たしたときにメイン モジュールに通知するダウンロード マネージャーのモジュールを作成しています。
MSDN を調べると、WFP を使用する必要があることがわかりました。そこで、プロジェクトを作成し、プロバイダーをインストールしてコールアウトを追加するモジュールを作成します。FwpsCalloutRegister0
で定義されているものを使用する必要があることがわかるまで、すべてがうまく機能していますFwpsk.h
。インクルードすると、カーネル モード関数であることを意味する WDK で使用可能なヘッダーであるため、ヘッダーが見つかりませんというエラーFwpsk.h
が発生します。FwpsCalloutRegister0
つまり、ユーザー モード アプリケーションでは使用できませんよね?
初めてドライバーを書くのは難しいことを知っています。私の問題を解決できる他のアプローチはありますか、それともドライバーを作成する必要がありますか?
PSLSP
は推奨されていないため、私が探しているものではありません。
アップデート:
この問題の解決策を提供する他のダウンロード マネージャーがあります。たとえば、Internet Download Manager
とFree Download Manager
. 彼らのアプローチが何であるかはわかりません。
wfp - 子プロセスのフィルタリング
FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4レイヤーにコールアウト ドライバーがあり、フィルター条件FWPM_CONDITION_ALE_APP_IDを使用して、特定のアプリケーションからのトラフィックをフィルター処理します。
ただし、一部のアプリケーションでは、いくつかの子プロセスも生成され、そのうちの 1 つがインターネットと通信する可能性があるため、親プロセスをフィルタリングしても出力は得られません。フィルタリング条件 FWPM_CONDITION_ALE_APP_ID を使用すると、WFP はこのアプリケーションによって作成されたプロセスのみをフィルタリングします。
親プロセスとそのすべての子プロセスをフィルタリングするにはどうすればよいですか?
security - Windows APIを使用してsslでtcp / ipリクエストを透過的にラップする方法
セキュリティシステムを開発しています。クライアントから他のサードパーティ システムにすべての tcp/ip 接続を転送するNginxを使用して、ssl ターミネーションのように機能するプロキシ サーバーがあります。
クライアントとプロキシの接続は、ssl によって認証され、安全に暗号化されている必要があります。
そして私の問題は:
各クライアントは、Windows 7 以降の OS をインストールしたコンピューターです。干渉できないいくつかのサードパーティ製アプリケーションと共にインストールされています。ユーザー エクスペリエンスを向上させるために、アプリケーションからのすべてのクライアントの tcp/ip 送信要求は、プロキシ サーバーに到達する前に、ssl 要求に透過的に "変換" (または "ラップ") する必要があります。そして、私の最初のアイデアは、Windows API、つまり WFP (Windows Filtering Platform) を使用してこれらの要求にアクセスするためのネットワーク ドライバーを開発することです。オンライン ドキュメントを読みましたが、理解するのは簡単ではありません。このようなプロジェクトをいくつか見つけたり、ドキュメントのどのセクションに注目する必要があるか教えてもらえますか? 前もって感謝します!