PsSetLoadImageNotifyRoutine
-
Guten Abend beisammen,
PsSetLoadImageNotifyRoutine() ruft mir meine eigene Treiber-Callback-Routine immer dann auf, wenn ein Prozess-Image in den Speicher geladen wird und übergibt meiner Callback-Routine außerdem eine IMAGE_INFO Struktur, in der unter anderem auch ein Zeiger namens PVOID ImageBase enthalten ist. Der ImageBase Zeiger enthält die Basisaddresse des Images. Nur... ? ^^
... es ist doch so, dass es sich bei ImageBase um eine virtuelle Addresse handelt (aka. Paging ist enabled), keine physische. Folglich müsste doch dann der Kernel ein GLOBALES PageDirectory besitzen, in dem ALLE Seiten ALLER Prozesse eingetragen sind (mit ihren physischen Address-Zuordnungen).
Wie könnte ich sonst mit dieser Addresse auf den Prozessraum eines anderen Prozesses zugreifen ?
Ich bin mir nicht sicher, ob diese Schlussfolgerung stimmt.
Aber deshalb bin ich ja da. Ich weiß es nicht...;DGreetings, Xzi-bit