Hallo zusammen.
Ich habe mal endlich wieder mehr Zeit und mache mich mal wieder über ein paar alte Projekte her.
Ich hatte mehrmals schon ansatzweise versucht, eine
DLL Funktion zur Laufzeit zu überschreiben (gab hier sogar ein paar Themen dazu).
* Zum einen hörte ich etwas von statischen und dynamischen DLLs (ich weiß, was das bedeutet) und dass man je nach dem unterschiedlich vorgehen muss.
* Zum anderen fiel das Wort "Inline Hook" wenn ich eine Funktion einer
DLL systemweit überschreiben möchte.
Letzteres ergab bei mir eine schlechte Google Recherche, bei der ich nicht schlauer geworden bin:
http://www.google.de/search?hl=de&sa...nG=Suche&meta=
Es gibt also 4 Möglichkeiten:
1. Funktion einer statisch geladenen
DLL für einen Prozess umbiegen
2. Funktion einer dynamisch geladenen
DLL für einen Prozess umbiegen
3. Funktion einer statisch geladenen
DLL systemweit umbiegen
4. Funktion einer dynamisch geladenen
DLL systemweit umbiegen
Wobei 3 und 4 eigentlich ein Punkt sind, denn wenn ich etwas systemweit umbiegen will, dann darf es im Endresultat keinen Unterschied machen, ob die
DLL dynamisch oder statisch geladen ist.
Nun meine Frage, damit ich endlich mal verstehe, wie so etwas funktioniert - kann mir jemand Codes zeigen, bei denen ganz einfach das Hooken einer Funktion mit diesen 4 Möglichkeiten gezeigt wird, sodass ich das korrekt nachvollziehen kann?
Im Moment hätte ich nämlich folgenden Bedarf an Hooks:
- Ich möchte versuchen, eine Funktion der system32.dll systemweit umzubiegen (Thread: Windows dazu bringen, dass Dateien sicher gelöscht werden)
- Ich möchte versuchen, eine Funktion der winmm.dll für einen bestimmten Prozess umzubiegen, sodass ich alle ausgehenden MIDI-Kommandos mitschneiden kann. (Dynamisch/Statische
DLL im Moment unbekannt)
Ich hoffe, irgendwo da draußen gibt es so eine Art "Kochbuch", in dem eine Hook Lösung für Delphi so einfach dargestellt wird, dass man sie einfach auf die eigenen Wünsche adaptieren kann.
Gruß
blackdrake