Есть ли в Windows apis для получения файловых дескрипторов, кроме createfile и openfile? - PullRequest
5 голосов
/ 17 августа 2008

Я пытаюсь найти файл журнала, в который пишет приложение.

Я успешно подключил createfile к библиотеке обходных путей из MSR, но, похоже, createfile никогда не вызывается с файлом, над которым я заинтересован в отслеживании. Я также пытался подключить openfile с теми же результатами.

Я не опытный программист Windows / C ++ (или даже опытный программист), поэтому мои первые две мысли были либо о том, что приложение вызывает createfile, прежде чем я перехватываю API, либо о том, что для создания файлов / получения есть какой-то другой API ручки для них.

Edit: Спасибо за два отличных ответа. Я бы поддержал кодирование ответа колеса, так как он был информативным, но мне не хватает представителя: (

Ответы [ 3 ]

8 голосов
/ 17 августа 2008

Вы можете использовать Sysinternal's FileMon . Это отличный монитор, который может точно сказать, какие системные вызовы связаны с файлами. сделал и какие параметры.

Я думаю, что этот подход намного проще, чем перехват вызовов API, и гораздо менее навязчив.

6 голосов
/ 17 августа 2008

Вот ссылка, которая может быть полезна:

Мониторинг файлов в стиле партизан с использованием C # и C ++

Можно создать файл, не касаясь API CreateFile, но могу ли я спросить , какой метод внедрения DLL вы используете ? Если вы используете что-то вроде Windows Hooks, ваша DLL не будет установлена ​​до тех пор, пока не будет инициализировано целевое приложение, и вы пропустите ранние вызовы CreateFile. Принимая во внимание, что если вы используете что-то вроде DetourCreateProcessWithDll, ваш хук CreateFile может быть установлен до запуска любого кода запуска приложения.

По моему опыту, 99,9% созданных / открытых файлов приводят к вызову CreateFile, включая файлы, открытые с помощью библиотек C и C ++, сторонних библиотек и т. Д. Возможно, есть некоторые недокументированные функции DDK, которые не маршрутизируются через CreateFile , но для типичного файла журнала я сомневаюсь.

3 голосов
/ 05 сентября 2008

Process Monitor от sysinternals тоже может помочь.

...