Здравствуйте, sergey77666, Вы писали:
O>>Также рекомендую заглянуть сюда:
S>Не вижу смысла сейчас этим заниматься. S>Я просто делаю связный список с ключом по хендлу, в который сперва записывается информация при каждом чтении\записи о каждом файле отдельно, затем при закрытии этого самого файла извлекается оттуда и передается на логгер.
Чисто для справки: вместо списка здесь эффективнее, например, AVL-дерево.
См. RtlInitializeGenericTableAvl и далее по ссылкам.
O>>Ну начнем с того, что хуки уже лет десять как (с x64 Windows Vista) просто тупо не функциональны из-за Patch Guard.
S>Хотя на виртуалке с Windows 10 x64 все работало.
Понятно, что в виртуальной машине с подключенным отладчиком ядра или с вырубленными
проверками цифровых подписей все работает, т.к. PatchGuard в таких сценариях не активен.
Но на реальной системе, где нет всяких отладчиков и test signing mode, из-за хуков будут
вылетать BSOD-ы CRITICAL_STRUCTURE_CORRUPTION раз в несколько минут. А на Windows 10 с
включенным Device Guard / HVCI сами хуки ядра вообще не получится поставить (из-за
ограничений на использование исполняемой памяти в ядре). Так что эта техника давно
мертва и использовать ее можно только для каких-то очень узкоспецифичных вещей.