3

正常に動作する独自の LSP を作成しました。ただし、DNS クエリをキャッチできません。たとえば、WSPGetHostByName や WSPGetAddrInfo のような関数はありません。

私の lsp は UDP プロトコルもサポートしていますが、機能していません。コンソール (cmd.exe) から nslookup を実行すると動作しているように見えますが、gethostbyname をキャッチできません。誰もそれを行う方法を知っていますか? NSP (Name Service Provider) を書くことが解決策になるとは思いません。しかし、私は間違っているかもしれません。

ありがとう

4

2 に答える 2

5

DNS クエリを「傍受」できる LSP を開発しました。これを行う唯一の方法は、すべての DNS 機能に接続することです。解決する必要があるいくつかの課題があることに注意してください。

  1. 32 ビットと 64 ビットの両方のコードをサポートする優れたフック ライブラリを使用する必要があります。
  2. ライブラリ ライセンスはアプリケーションに適したものでなければなりません。無料のライブラリもいくつかありますが、無料のプロジェクトでのみ自由に使用できます。
  3. 関数をフックするときは、IP ベースではない特定の値を変更しないようにし、クエリを実際の関数に委ねる必要があります。

クエリは MS DNS クライアントから送信されるため、UDP のインターセプトは機能しません。そのため、TDI、NDIS、WFP などの低レベルのドライバーを作成しない限り、関数をフックする (または NSP を作成する) 必要があります。NSLookup は、DNS クエリ自体を作成するため、機能します。

于 2011-11-29T23:47:29.230 に答える