Zitat von
himitsu:
Zitat:
Wie bekomme ich den Dateinamen aus einem dazugehörigen Dateihandle?
-
GetModuleFileName nutzen, um damit den Dateinamen auszulesen
Sicher das Du nicht eher
GetMappedFileName meinst?
Zitat von
himitsu:
einzige Mankos:
- man braucht die nötigen Rechte um eine MMF damit erstellen zu können (sollten aber meißtens vorhanden sein)
- die Datei muß mindestens 1 Byte groß sein, da man ja etwas benötigt, um es in den Speicher mappen zu können
- du benötigst Rechte um das
Handle duplizieren zu können, wenn Du das
Handle eines fremden Prozesses auflösen möchtest
Davon Abgesehen funktioniert Deine Methode explizit nur mit Dateihandles. Die hier vorgestellte Methode allerdings grundsätzlich mit allen Handles. Das Beispiel mit den Dateihandles ist nur die häufigste Anwendung. Prinzipiell kannst Du auch Handles zu Mutexes oder Events zu Namen auflösen oder aber Registry Handles z.B..
Zitat von
Apollonius:
Zugegeben: Ich kenne mich nicht mit Treiber-Entwicklung aus. Mir kommt dieser Code jedoch wie eine einzige Sicherheitslücke vor.
Nunja, es geht prinzipiell um die Demonstration des Vorgehens. Es wird z.B. nicht explizit überprüft ob der übergebene Buffer wirklich beschreibbar ist. Ein ProbeForWrite wäre also Minimum noch notwendig.