Я ищу способ определить все файлы, которые процесс открыл в Windows. Это отличается от многих (уже отвеченных) здесь вопросов, потому что мне нужно знать все файлы, которые открыл процесс, а не только те, которые он открыл, когда я их ищу. Таким образом, я избегаю пропусков файлов, которые были полностью загружены в память, а затем закрыты. Вот некоторые вещи, которые я пробовал, но они не сработали:
- ProcExp и Handle by SysInternals (оба списка содержат только открытые файлы)
- ProcMon от SysInternals (с фильтрами имени процесса и операциями ReadFile и WriteFile). Этот удивил меня. Почему бы это не сработало?
Мой тестовый пример - открытие текстового файла с флэш-накопителя с помощью Блокнота, поэтому я не ожидаю, что ProcExp или Handle сработают (поскольку Блокнот считывает все в память, а затем закрывает файл). ProcMon, похоже, должен работать, хотя. Фактически, когда я редактирую текстовый файл и сохраняю его, я вижу операцию WriteFile и путь к моему текстовому файлу. Единственные операции ReadFile, которые я вижу при открытии файла, это C:\Windows\Fonts\StaticCache.dat
. Может просто мой конфиг фильтра неправильный? Или другой инструмент будет работать лучше для меня?