Перехват изменений в реестре - PullRequest
4 голосов
/ 13 июля 2011

Я знаю, что могу отслеживать изменения реестра, используя RegNotifyChangeKeyValue .Что мне интересно, так это возможность перехвата и, возможно, предотвращения чтения и записи в реестр.Я знаю, что некоторые вирусные программы, такие как Norton Anti-Virus, выдают предупреждение, спрашивая, можно ли какой-нибудь программе изменить реестр, поэтому я могу только предположить, что должен быть способ сделать это.

Предпочтительно, я бы предпочел управляемый способ, используя C #, однако, если у кого-то есть идеи, как это сделать, даже если он использует какую-либо функцию WINAPI, я тоже приму этот ответ.

Спасибо, заранее

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Взгляните на Easyhook - это управляемая версия существующего проекта Microsoft Research под названием Detours. Это должно делать то, что вы хотите.

0 голосов
/ 13 июля 2011

Несколько лет назад я сделал это на Windows XP, написав драйвер (sys). В 32-разрядной версии Windows я нашел таблицу с адресами функций и заменил их своими собственными. Конечно, драйвер вызывал оригинальные функции API реестра изнутри.

Не знаю, как это работает в системах Vista / 7 и x64. Возможно, вам придется провести некоторые исследования по этому вопросу.

Если вы пойдете по этому пути, не удивляйтесь, если какое-нибудь антивирусное программное обеспечение сообщит о вашем драйвере как о вредоносном ПО.

...