Отслеживать изменения реестра ядра - PullRequest
3 голосов
/ 26 марта 2011

Не могли бы люди дать мне указатели (не каламбур) по темам, которые мне нужно будет исследовать, чтобы иметь возможность сделать это?Я не очень разбираюсь в Windows, но я очень быстро разбираюсь в новых понятиях.

Я видел программу мониторинга процессов, которую Марк Руссинович и Брайс Когсвелл написали: http://technet.microsoft.com/en-gb/sysinternals/bb896645

который может смотреть на все происходящее в реестре по ключам в ядре.В прошлом мне удавалось делать подобные вещи, используя C # и доступ к реестру на уровне пользователя, но я не смог добраться до ядра с помощью набора оболочек, который я получил от codeproject.

Может люди, пожалуйстапомогите со мной, где я должен начать?Я предполагаю, что я прошу больше помощи по аспекту Windows / OS этого.

Причина для этого: (Я больше программист на Java, чем на C ++, однако я хочу попасть впоследнее. Лучший способ научиться - это делать то, что вас интересует, так как мне интересны приложения реального времени, это самое дешевое, о котором я могу подумать (без необходимости платить за данные).)

Ответы [ 2 ]

2 голосов
/ 27 марта 2011

Для режима ядра взгляните на CmRegisterCallback .

Я полагаю, что Process Monitor использует отслеживание событий для функций Windows, однако;см., например, EtwRegister .

0 голосов
/ 27 марта 2011

Запись драйвера режима ядра для перехвата операций чтения / записи в реестре чрезвычайно трудна. Если вы просто хотите видеть доступ к реестру как в режиме пользователя, так и в режиме ядра, то лучший способ сделать это - через прослушиватель трассировки ETW в реальном времени. Благодаря этому вы получаете весь необходимый мониторинг, без ужасающего предложения по модификации работающего ядра. Марк не использует это, потому что в то время это не существовало, но в настоящее время я уверен, что он рекомендовал бы вам сделать это вместо этого. Если вы знакомы с DTrace в Linux, ETW является ближайшим аналогом Windows (он так же эффективен, как DTrace, но не так удобен для пользователя и не поддерживает сценарии)

Ознакомьтесь с http://blogs.msdn.com/b/matt_pietrek/archive/2005/03/23/401080.aspx для ознакомления с ETW, и вот вопрос о SO, связанный с потребителями ETW в реальном времени: Как мне зарегистрироваться в качестве потребителя ETW в реальном времени для событий ядра NT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...