c ++ - Monitor kernel registreringsdatabasen ændringer

Indlæg af Hanne Mølgaard Plasc

Problem



Kunne folk venligst give mig pointers (ingen ordsprog beregnet) til emner, jeg skal undersøge for at kunne gøre dette? Jeg er ikke rigtig ekspert på Windows, men jeg er meget hurtig til at samle nye koncepter.


Jeg så procesovervågningsprogrammet, som Mark Russinovich og Bryce Cogswell skrev:
http://technet.microsoft.com/en-gb/sysinternals/bb896645[1]


som kan se på alt, der sker, registreringsdatabasen nøglestil i kernen. Jeg har været i stand til at gøre denne slags ting ved hjælp af C # og brugerniveau registreringsadgang i fortiden, men jeg kunne ikke nå kernen ved hjælp af wrapper-pakken, jeg fik fra codeproject.


Kan folk venligst hjælpe mig med hensyn til, hvor jeg skal starte? Jeg gætter jeg spørger mere om hjælp til Windows/OS-aspektet af dette.


Årsag til at gøre dette:
(Jeg er mere af en Java-end C ++-programmerer, men jeg vil komme ind i sidstnævnte. Den bedste måde at lære er at gøre noget, der interesserer dig, så jeg er interesseret i real-time applikationer, det er den billigste en jeg kunne tænke på (uden at skulle betale for data).)

Bedste reference


Kernel-tilstand, tag et kig på CmRegisterCallback. [2]


Jeg mener, at Process Monitor bruger Event Tracing for Windows-funktionerne, dog; se for eksempel EtwRegister. [3]

Andre referencer 1


At skrive en kernel-mode driver til at opfange registreringsdatabasen læser/skriver er yderst vanskelig. Hvis du bare vil se både adgangskoder til bruger og kernel-mode, er den bedste måde at gøre det via en realtids-ETW-sporlytter. Med dette får du al den overvågning, du vil have, uden det skræmmende forslag om at ændre en kørende kerne. Mark bruger ikke dette, fordi det på tide ikke eksisterede, men i dag er jeg sikker på, at han anbefaler dig at gøre dette i stedet. Hvis du er bekendt med DTrace på Linux, er ETW Windows 'nærmeste ækvivalent (det er som performant som DTrace, men ikke næsten som brugervenligt eller scriptable)


Tjek http://blogs.msdn.com/b/matt\_pietrek/archive/2005/03/23/401080.aspx for en introduktion til ETW, og her er et spørgsmål om SO relateret til realtid ETW forbrugere: Hvordan Jeg registrerer mig som en realtid ETW-forbruger til NT Kernel Events? [4]