Die Datei die ein Prozeß gerade offen hat ...
-
... wie kriegt man das in Erfahrung?. Ich hab mich schon ein wenig mit der psapi rumgeschlagen, bin aber nicht wirklich weiter gekommen. Irgendwie kann man doch die Liste der Handles kriegen, wie aber von diesen dann auf den Dateinamen ?
Bei sysinternals gibt es den Filemon, der die Informationen in echtzeit aktualisiert, leider stellen sie keinen Quellcode dafür zur verfügung.
Viellicht kann einer von euch hier weiterhelfen.mfg.
-
Ich nehmen mal an, dass die irgend einen Hook verwenden - was genau hast du denn vor?
Willst du auch alle Aktionen aufzeichnen lassen? Oder willst du schauen, welche Dateien ein Prozess geöffnet hat? Oder willst du schauen welcher Prozess eine bestimmte Datei geöffnet hat?PS: Groß weiterhelfen werde ich dir wohl aber leider nicht können

Aber eine Präzisierung ist immer gut
-
Oder willst du schauen, welche Dateien ein Prozess geöffnet hat? Oder willst du schauen welcher Prozess eine bestimmte Datei geöffnet hat?
Präzisieren kann man das leider kaum noch, ob man das nun aufzeichnet oder nicht ist absolut irrelevant. Wenn man das aus der Funktionsweise des Systems betrachtet spielt es im Prinzip keine Rolle was man will, weil A auch B einschliest. Kriege ich die offene Datei eines Prozesses kriege ich die Dateien aller Prozesse und auch eine bestimmte Dateien eines bestimmten Prozesses. Also komplett unwichtig hier.
Was mich als Programmierer lediglich interessiert ist was ich für Möglichkeiten habe mein Problem zu lösen.Über Hooks hab ich schon was gelesen, weis allerdings nicht wo ich da genau ansetzen koennte. Ausserdem, wenn ich mich recht entsinne funktionieren Hooks indem man bestimmte Systemnachrichten abfängt. Gibt es irgendwie eine liste aller offenen Handles und den dazugehörigen PIDs oder so ähnlich ? Das wäre nämlich sehr hilfreich.
-
GetModuleFileName( 0, pString, strlen( pString ) ); für die aktuelle datei
GetModuleFileNameEx(), wenn du die handles auf den process und das module hast.
-
Gaston schrieb:
... wie kriegt man das in Erfahrung?. Ich hab mich schon ein wenig mit der psapi rumgeschlagen, bin aber nicht wirklich weiter gekommen. Irgendwie kann man doch die Liste der Handles kriegen, wie aber von diesen dann auf den Dateinamen ?
Solltest du die Liste der Handles bekommen (ich weiß nicht, ob das geht), dann solltest du mit Funktionen aus der undokumentierten NT-API den Dateinamen abfragen können. Schau mal, ob dir die Funktion XXX (http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/File/NtQueryInformationFile.html) weiterhilft (kannst ja dann hier posten, ob es funktioniert hat).
(NT-API ist die API, auf der Win32 implementiert ist. Funktioniert natürlich nur unter NT-Systemen.)Bei sysinternals gibt es den Filemon, der die Informationen in echtzeit aktualisiert, leider stellen sie keinen Quellcode dafür zur verfügung.
Filemon ist ein Dateisystem-Filtertreiber. Glaub mir, so etwas willst du nicht programmieren
