Process Monitor está utilizando un controlador de kernel o ETW (ver a continuación) para capturar eventos de registro. Sé que Process Monitor usa ETW para algunos de sus datos (como información de red).
Un mecanismo de enganche o desvío de API como EasyHook normalmente funciona en el nivel de la API Win32 (por ejemplo, RegSetValue
o RegCreateKeyEx
en ADVAPI32.dll). Debido a esto, tiene la limitación que usted menciona: solo se capturan los accesos de registro en modo usuario. Además, el enganche API generalmente se realiza por proceso, por lo que debe insertarse en cada proceso en el que desee recopilar datos. También debería supervisar la creación del proceso si realmente desea capturar todos los accesos en el sistema.
Event Tracing for Windows (ETW) sería una manera fácil (hablando relativamente) de capturar todos los accesos de registro. La idea básica detrás de ETW es que el OS, el tiempo de ejecución, la biblioteca e incluso los desarrolladores de aplicaciones cotidianas pueden agregar instrumentación específica a su código para registrar datos sobre eventos y escenarios interesantes. Este seguimiento tiene poca carga y se puede recolectar fácilmente. ETW ha existido por un tiempo, pero realmente ha ganado tracción en todo el kernel comenzando con Vista. Casi todos los principales subsistemas del kernel ahora están equipados con ETW. También es ahora la base del registro de eventos de Windows.
ETW tiene una buena cantidad de equipaje y carece de documentación sustancial en algunas áreas, pero si usted está interesado, puede retirar el siguiente:
Para atrapar el registro de modo de núcleo accesos tendría que escribir en C++?
No, utilizando la biblioteca TraceEvent mencionada anteriormente, puede usar C# para capturar y analizar los accesos de registro kernel y modo de usuario en todo el sistema.
Usted está pensando en RegMon de Sysinternals, que ha sido sustituido por el monitor de procesos http://technet.microsoft. com/en-us/sysinternals/bb896645 –
¡El monitor de proceso es el que yo usé, sí! – Tom
¿Las versiones anteriores de estas utilidades SysInternals no vienen con el código fuente, o estoy soñando? –