5

アプリケーションが書き込んでいるログファイルをスヌープしようとしています。

MSRの迂回ライブラリでcreatefileを正常にフックしましたが、スヌーピングに関心のあるファイルでcreatefileが呼び出されることはありません。私も同じ結果でopenfileをフックしようとしました。

私は経験豊富なWindows/C ++プログラマー(または経験豊富なプログラマー)ではないため、最初の2つの考えは、APIをフックする前にアプリケーションがcreatefileを呼び出すか、ファイルを作成したり、それらのハンドルを取得したりするための他のAPIがあることでした。 。

編集:2つの素晴らしい返信をありがとう。有益だったので、codingthewheelの返信に賛成しますが、十分な担当者がいません:(

4

3 に答える 3

8

Sysinternal のFileMonを使用できます。これは、どのファイル関連のシステム コールが行われているか、およびパラメータが何であるかを正確に知ることができる優れたモニタです。

このアプローチは、API 呼び出しをフックするよりもはるかに簡単で、邪魔にならないと思います。

于 2008-08-17T19:26:56.637 に答える
6

役に立つかもしれないリンクは次のとおりです。

C# と C++ を使用したゲリラ スタイルのファイル監視

CreateFile API に触れずにファイルを作成することは可能ですが、使用している DLL インジェクション方法を教えてください。Windows フックのようなものを使用している場合、ターゲット アプリケーションが初期化されるまで DLL はインストールされず、CreateFile への初期の呼び出しを見逃すことになります。一方、DetourCreateProcessWithDll のようなものを使用している場合は、アプリケーションの起動コードを実行する前に CreateFile フックをインストールできます。

私の経験では、作成/開かれたファイルの 99.9% で、C および C++ ライブラリ、サードパーティ ライブラリなどを介して開かれたファイルを含め、CreateFile が呼び出されます。典型的なログ ファイルとは思えません。

于 2008-08-17T19:04:47.227 に答える
3

sysinternals のProcess Monitorも役立ちます。

于 2008-09-05T08:39:16.857 に答える