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

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

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

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

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

17.08.2008 18:27:08
3 ОТВЕТА
РЕШЕНИЕ

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

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

8
17.08.2008 19:26:56
Filemon и его дочернее приложение Regmon - отличные вещи
Chris Ballance 9.11.2008 16:53:21
FileMon был заменен ProcMon ( technet.microsoft.com/en-us/sysinternals/bb896645.aspx )
Jason R. Coombs 6.10.2009 20:05:24

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

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

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

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

6
17.08.2008 19:04:47

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

3
5.09.2008 08:39:16