Любые API Windows для получения дескрипторов файлов, кроме createfile и openfile?

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
3 310
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

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

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

Ответ принят как подходящий

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

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

Filemon и его родственное приложение Regmon - отличные вещи

Chris Ballance 09.11.2008 19:53

FileMon был заменен ProcMon (technet.microsoft.com/en-us/sysinternals/bb896645.aspx)

Jason R. Coombs 07.10.2009 00:05

Монитор процесса от sysinternals тоже может помочь.

Другие вопросы по теме