[Delphi]Hooken von FindNextFileW zeigt im Explorer keine Wirkung

HeyHo Leute,
Mich quält da ein Problem:
Ich versuche zurzeit ein Programm zu schreiben, welches Dateien vor dem Windows Explorer verbirgt. Zu diesem Zweck habe ich eine Dll geschrieben, welche den IAT Eintrag von FindNextFileW ändert..In einer Testanwendung, die mit FindNextFileW alle Dateien eines Ordners auflistet funktioneirt das auch super. Wenn ich die DLL allerdings in den Explorer injecte, nimmt dieser meine Bemühungen nicht zur Kenntnis, ja er scheint FindNextFile nicht einmal zu benutzen :(
Meine Frage ist nun: Habe ich vlt einen Fehler gemacht? Und wenn nein, was sollte man dann hooken um eine Datei zu verstecken?

Danke Im Voraus
.garfield
 
Explorer nutzt es nicht direkt, sonder über einen Umweg: irgendeine schöne Funktion (der Name fällt mir im Moment nicht ein) der Shell32.DLL sucht die Daten zusammen und übergibt es an Explorer. Versuche es mal mit einem Hook in der DLL ;)
 
Versuche es mal mit einem Hook in der DLL
Ohen jetzt begriffstutzig wirken zu wollen, aber was meinst du damit? Natürlich setze ich den Hook in der Dll, sonst hätte es wohl wenig Sinn ;)

Bzgl. der Shell32.dll wäre ich dir sehr verbunden, wenn du noch einmal versuchen könntest dich etwas genauer zu erinnen, da der Explorer aus der Shell32 sehr viele Funktionen als Ordinal importiert ;)

Im Übrigen dachte ich immer, dass die Shell32 in erster Linie wasmit Icons und speziellen Ordnerpfaden zu tun hat?
 
Original von .garfieldOhen jetzt begriffstutzig wirken zu wollen, aber was meinst du damit? Natürlich setze ich den Hook in der Dll, sonst hätte es wohl wenig Sinn ;)

die Shell32.DLL wird auch vom Explorer geladen/genutzt. Du kannst die DLL also genausogut hooken, wie die Anwendung selbst (dazu sollte Deine Hook-DLL nach Shell32.DLL suchen (LoadLibrary("Shell32.DLL") sollte die Adresse zurückgeben) - der Vorgang des Hookens bleibt gleich).

Bzgl. der Shell32.dll wäre ich dir sehr verbunden, wenn du noch einmal versuchen könntest dich etwas genauer zu erinnen, da der Explorer aus der Shell32 sehr viele Funktionen als Ordinal importiert ;)
k.A. , vielleicht diese: http://msdn.microsoft.com/en-us/library/bb762165(VS.85).aspx
Den Namen braucht man auch nicht unbedingt, denn Du solltest die IAT der DLL hooken ;)
Also damit die DLL diese Dateien nicht findet.

Sauberer wäre es natürlich, direkt die Funktionen in der Kernel32.DLL auf Deine Filterfunktionen umzuleiten. Mein Debugger sagt zwar, dass beim Suchen die Funtionen FindFirst* von der Shell32.DLL aufgerufen werden - sicher kann man bei der Fülle an DLLs, die Explorer so nutzt, nie sein.
Im Übrigen dachte ich immer, dass die Shell32 in erster Linie wasmit Icons und speziellen Ordnerpfaden zu tun hat?
na, schau Dir einfach die anderen Funktionen an ;)
http://msdn.microsoft.com/en-us/library/bb776426(VS.85).aspx

Edit/PS: jetzt sehe ich es - die Internetwelt ist extrem klein ;)
 
Hook auf LoadLibrary:
Bei jedem Navigieren lädt der Explorer eine "browseui.dll"
Jetzt würde ich noch GetProcAddress hooken und nach der browseui.dll filtern und ausgeben.
 
Ja CDW, Es scheint dein Schicksal zu sein immer und überall mit meinen Problemen belästigt zu werden..Wie immer hast du die Antwort gewusst und mir aus der Klemme geholfen...Einfach die Shell32.dll hooken.
Irgendwann werde ich ein Sonett für dich schreiben, danke! :D
Auch an dich dank Grafix..
 
Hallo Zusammen, auch wenn schon ein wenig Zeit vergangen ist könntest du vielleicht das fertige Programm mit gehookter shell32.dll hochladen. Bekomme es irgendwie nicht ganz hin. Vielen Dank Gruss
 
Zurück
Oben