IRP_MJ_READ + notepad = ... Как решить без хуков?
От: sergey77666 Марс  
Дата: 09.01.18 02:51
Оценка:
Есть аж несколько тем на форумах о том, что IRP_MJ_READ почему-то не работает, если файл открывать блокнотом — notepad.exe

С той же проблемой столкнулся и я.
Например, для SearchIndexer.exe он работает. Для дотнетовского System.IO.File.WriteAllBytes (что внутри оной — пока не смотрел) — тоже.

Но для Блокнота, действительно, нет.

В темах 10-летней давности предлагалось ставить хуки на функции, работающие с Mapping memory и др.
Как я понял, имеются в виду SSDT-хуки.

Однако с Windows 10 использование этих хуков стало очень ограниченным. Если честно, то сам-то не знаю о чем сейчас говорю, на виртуалке с Win 10 x64 хуки работали Но, в общем, не рекомендуется.

Как решить без хуков?

— Ring3 не вариант. Только драйвера.

— Попросту в IRP_MJ_CREATE мониторить открытие всех файлов. Но там еще нельзя отличить, будет ли это чтение или запись. Да и алгоритмы парсинга всяких белых\черных списков здесь — уж слишком большой удар по быстродействию, вместе с DbgPrint просто невыносимо отлаживать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.