Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Auf Dateien zugreifen die gerade in Gebracuh sind (?)

  Alt 26. Aug 2008, 18:51
Ich vermute mal, dass Unlocker dem anderen Programm das Handle unter den Füßen wegzieht. Es gibt keine gute Möglichkeit, dein Problem zu lösen, jedoch eine Reihe von schlechten (folgende Liste ist ohne Anspruch auf Vollständigkeit):
1. CreateFile hooken und FILE_SHARE_READ zum dritten Parameter hinzu-or-en. Du solltest jedoch bedenken, dass sich der Programmierer des "Feind"-Programms etwas dabei gedacht haben könnte, als er dieses Flag nicht gesetzt hat.
2. Einen Thread in das andere Programm injizieren, und von dort aus mit dem entsprechenden Handle lesen. Das funktioniert jedoch nur, wenn im anderen Programm bei CreateFile auch Lesezugriff und nicht nur Schreibzugriff beantragt wurde. Richtig hässlich wird es, wenn die Datei nicht overlapped geöffnet wurde. Dann musst du nämlich manuell den Dateizeiger versetzen. Dabei gibt es dann eine Race Condition.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat