In Windows kann ein Kernel-Treiber Dinge wie das Fixieren von Speicher zum Sichern eines virtuellen Adressbereichs tun (MMProbeandLockPages
). Aber ich konnte keine Möglichkeit finden, tatsächlich zu überprüfen, ob eine virtuelle Adresse für einen bestimmten Prozess gültig ist. Mit anderen Worten, gibt es eine Möglichkeit für einen Kernel-Treiber zu überprüfen, ob eine bestimmte virtuelle Seite in der Seitentabelle eines bestimmten Prozesses enthalten ist?Kann ein Windows-Treiber auf die Seitentabelle eines Prozesses zugreifen?
2
A
Antwort
0
Wenn der Treiber nicht im Kontext des Prozesses ausgeführt wird, müssen Sie zuerst KeStackAttachProcess aufrufen.
Dann können Sie ProbeForRead oder ProbForWrite innerhalb versuchen/außer Block. Siehe beispielsweise die Behandlung von IOCTL_SIOCTL_METHOD_NEITHER in src \ general \ ioctl \ wdm \ sys \ sioctl.c in WinDDK-Beispielen.
Verwandte Themen
- 1. Auf den Posteingang eines generischen Prozesses mit EWS zugreifen
- 2. Zugriff auf den Speicherbereich eines Prozesses
- 3. Wie kann ich auf ein Steuerelement eines DataTemplate zugreifen?
- 4. Wie kann ich auf die Referenzzählung eines Perl-Hashs zugreifen?
- 5. Auf die Interna eines laufenden Applets zugreifen
- 6. "Kann auf ein entsorgtes Objekt nicht zugreifen"
- 7. Kann ich die Priorität eines Prozesses in Erlang ändern?
- 8. Kann ich die Prozessgruppe eines bestehenden Prozesses setzen?
- 9. Wie kann ich ein Speicherleck eines laufenden Prozesses finden?
- 10. Wie kann ich auf die Eigenschaften eines anonymen Objekts zugreifen?
- 11. Wie kann ich auf die ListViewItems eines WPF-ListView zugreifen?
- 12. Die RAM-Auslastung eines Prozesses ermitteln
- 13. Entfernen eines Zombie-Prozesses
- 14. Speichernutzung eines untergeordneten Prozesses?
- 15. Kann ein virtueller Host auf Apache auf die Dateien eines anderen virtuellen Hosts zugreifen?
- 16. Überwachung eines Remote-Prozesses
- 17. die Dateien eines bestimmten Prozesses geöffnet auf Linux
- 18. Kopie auf Schreibspeicher innerhalb eines Prozesses zuweisen
- 19. Wie finden oder berechnen Sie die Seitentabellengröße eines Linux-Prozesses und andere Kernel-Accounts?
- 20. Wie wählt das System die richtige Seitentabelle?
- 21. Kann Javascript auf ein Dateisystem zugreifen?
- 22. Aufhalten eines Prozesses [Aufgabe, O] auf Benutzereingaben
- 23. Starten eines separaten Prozesses
- 24. Wie können Sie auf Speicher eines anderen Prozesses zugreifen und seine Funktionen aufrufen?
- 25. Speicherauszug eines Prozesses
- 26. Wie berechnet man die Ausführungszeit eines Prozesses?
- 27. Wie misst man die Stapelgröße eines Prozesses?
- 28. Kann unter Linux ein Prozess die GUI eines anderen Prozesses rendern?
- 29. Kann ein Objekt auf das private Feld/die Funktion eines anderen Objekts derselben Klasse zugreifen?
- 30. Ausgabe eines Prozesses zur Laufzeit
Ich gehe davon aus, dass der Fahrer beachten muss, dass die Adresse zum Zeitpunkt der Prüfung gültig ist, aber danach möglicherweise sofort ungültig wird. –
Harry Johnston: wahr. Jedes Lesen oder Schreiben sollte im selben try/except-Block erfolgen und der IRQL sollte PASSIV sein. – glagolig