問題タブ [ndis]

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 投票する
3 に答える
1085 参照

c - NDIS フック sendPacketsHandler

NdisRegisterProtocol()はプロトコル ドライバーを登録し、構造体を使用_NDIS_OPEN_BLOCK_NDIS_PROTOCOL_BLOCKて成功をフックReceivePacketHandlerし、NDIS の代わりに MyRecivePacket() を使用して、Web サイトを開いたときにパケット関数を受信しMyRecievePacket()ます。

私の質問は:www.stackoverflow.comを使用して Web サイト ( など) を開くときIE、 をフックしSendPacketsHandlerてこのパケットを取得し、URLwww.stackoverflow.com文字列を取得するにはどうすればよいですか。つまり、カーネル モードで URL をキャプチャする方法です。ありがとう

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

c++ - Windows NDIS のパススルーの例で、特定のアダプターで NDIS_PACKET を送信する方法は?

Windows WDK の元のパススルーの例を変更して、Windows プラットフォームで NAT のようなソフトウェアに取り組んでいます。

私のマシンにはいくつかのネットワーク アダプタがあり、受信したすべてのパケットを分析して、どのアダプタにパケットを転送するかを決定したいと考えています。問題があります。NdisSend 関数を呼び出すときに、送信用のアダプターを指定する方法がわかりません。

次のように、NdisSend には BindingHandle 引数がありますが、私の理解では、パススルー内のすべてのアダプターを表す必要があります (正しくない場合があります:)

NdisSend(&Status, pAdapt->BindingHandle, MyPacket);

では、NdisSend を呼び出すときに {62E9DB05-88D3-479D-A194-22D6A591DB96} のようなアダプターを指定するにはどうすればよいでしょうか。

とてもthx..

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

windows - Windowsドライバー開発

私はWindowsドライバーの開発に慣れていないので、私の質問があまりにも愚かである場合は、我慢してください。そうですね、MSDNが示唆しているように、また私が認識しているように、ホストコンピューター(ドライバーの開発など)とターゲットコンピューター(ドライバーのデバッグなど)が2つの別々のコンピューターである必要がある理由はわかりません。なぜそのような分離?私は、ドライバーを開発しているホストコンピューターにドライバーを展開してデバッグすることにより、これら2つをマージしようとしましたが、Windowsからの異議なしに機能しているように見えました。ありがとう。

PS。このようなソースhttp://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspxは私にそう思わせました。

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

driver - ネットワーク監視に使用するテクノロジ/API/テクニックは何ですか?

さて、私はファイルシステム、レジストリ、およびネットワークアクティビティを監視するユーティリティを構築しています(プロセスごとに、選択したプロセスによるアクティビティのみ)。ミニフィルター ドライバーを開発することで、ファイル システムとレジストリ アクティビティの部分を完成させました。ただし、ネットワークに対してどのようにすればよいかわかりません。私がやりたいことは、sysinternal の TCPView が行うこととよく似ていますが、選択したプロセスによって ESTABLISHED 接続を監視したいだけです。接続ごとにリアルタイムで取得したいものは次のとおりです。

-プロトコル (TCP または UDP)

-送信元ポート

-リモート IP とポート

-[オプション] 監視が開始されてから特定の接続で転送されたバイト数

何を使えばいいですか?LSP について聞いたことがありますが、もう少し詳しく読んでみると、適切に機能する LSP を作成するのは非常に難しいことに気付きました。また、それらが時代遅れになっていること。問題は、このモジュールを学習して書くのに約 2 ~ 3 週間しかないことです。時間制限があるため、WFP のようなものには行きたくありません。ただし、非常に優れたチュートリアルがない限り、MSDN のドキュメントについて話しているわけではありません。これが NDIS などを使用して「簡単に」実行できるかどうかはわかりません。

とにかく、どうしよう、どこに力を注げばいいのか。LSP について学ぶことでリスクを負うべきか、それとも NDIS がタスクを達成するか、または何か他のことを行うべきでしょうか。私は今、ちょっと無知です。ここで私を助けて!

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

driver - pcapnet とパケットのリダイレクト

あるイーサネット インターフェイスのパケットを別のインターフェイスにミラーリング (リダイレクト/転送ではなく) することはできますか? いずれにせよ、ホスト マシンはパケットを処理します。winpcap はフィルターとして介在しないため、パケットをドロップすることはできません。しかし、Winpcap または pcap.net を使用してパケット ミラーリングが可能かどうか疑問に思っていました。

インターフェイス ブリッジに似ています。カスタム NDIS 5/6 フィルター ドライバーを使用することはオプションですが、現在は追求していません。私はこれを厳密にユーザーモードで実行しようとしています.C#を使用できれば幸いです.

Win7x64を使用。

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

c++ - NDIS プロト サンプルとイーサネット ブリッジ

Win 7 用の WDK で提供されている NDIS proto の例を使用して、2 つのイーサネット アダプター間のテスト ブリッジを作成しようとしていました。今、私はどのように進むべきか疑問に思っていましたか?一度にいくつかのアダプターのみにバインドする方法はありますか?

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

driver - NDIS 6.x イーサネット ブリッジ ドライバー

NDIS 6.x を使用してイーサネット ブリッジを構築するための最良の選択と方法は何かと考えていました。ミニポート、IM、プロトコル、フィルター ドライバーのどれを使用すればよいですか?

WDK で利用可能なプロトコル ドライバーのサンプルをカスタマイズしようとしたところ、イーサネット アダプターに正常に接続されました。次は何?

どんな助けでも大歓迎です。

Windows 7x64 の使用

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

windows - NDIS プロトコル ドライバーでループバック パケットを無効にする方法

プロトコル ドライバーでループバック パケットの受信を無効にするにはどうすればよいですか? シナリオは、プロトコル ドライバーが 1 つのアダプターからパケットを受信し、それを別のアダプターに送信するというものです。(のようにeth0 -> eth1)。

IPv4だけに興味があり、

フィルタは次のように定義されます。

受信側は、以下に示すようにループバック パケットをチェックしています。

また、パケットを道路に送信すると、SendFlagsMSDN に従ってループバックを回避するために がゼロに設定されます。

これらすべてのハードルを上げた後でも、wireshark から明らかなように、私の抗議はループバック パケットを受信して​​います。

何か案が?

NDIS6.0、ndisprot60、開発者: Win7、テスト VM: Win2008 R2 を使用

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

multithreading - ドライバのスレッドがパケットを送信しない

この NDIS Filter Driverがあります。10 秒ごとにパケットを送信するスレッドをドライバーで開始しようとしました。

そのために、次のコードを使用します。

関数はPsCreateSystemThreadin で始まりましたDriverEntry
しかし、これは私のパケットを送信しません。
私はこれを使用しようとします:

このコードは、パケットをノンストップで送信します。

次のコードは、10 秒ごとに私のパケットで新しいファイルを作成します (CreateFileS は私の関数です)が、私のパケットは送信しません:

10 秒ごとにパケットを送信するにはどうすればよいですか?

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

windows - ProtocolBindAdapterルーチンの外でNdisOpenAdapterExまたは代替を呼び出す方法は?

有名なパケット キャプチャ ソフトウェアである WinPcap を NDIS 5.0 から NDIS 6.x に移植しています。すべての NDIS 5.0 機能を 6.0 バージョンに変換しようとしました。WinPcap ソースコード関数では、NdisOpenAdapter が Openclos.c の NPF_OpenAdapter によって呼び出されます。NDIS 6.0 の NdisOpenAdapterEx に変換しました。しかし、4 番目のパラメーター BindContext を設定する方法が見つかりません。NdisOpenAdapterEx の宣言はここにあります: http://msdn.microsoft.com/en-us/library/windows/hardware/ff563715(v=vs.85).aspx

また、MS は、「プロトコル ドライバーは、ProtocolBindAdapterEx 関数から NdisOpenAdapterEx を呼び出す必要があります。NDIS は、ProtocolBindAdapterEx のコンテキスト外で NdisOpenAdapterEx を呼び出そうとしても失敗します」と述べています。そのため、NPF_OpenAdapter で NdisOpenAdapterEx を呼び出すことはできないようです。NPF_BindAdapterEx 関数で呼び出す必要があります。ドライバー npf.sys を独自のバージョンに置き換え、Wireshark (パケット キャプチャ フロントエンド) を開始し、NPF_BindAdapterEx にブレークポイントを設定し、NPF_BindAdapterEx が NPF_OpenAdapter の前に呼び出されたことがないことを発見しました。したがって、NdisOpenAdapterEx を呼び出す前に BindContext パラメータを取得することは不可能です。

できるだけ小さな変更を加えて、WinPcap を NDIS 6.0 に移行したいだけです。この問題を解決するにはどうすればよいですか?</p>

これがOpenclos.cのコードです