Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

DLL Funktion Hook - Allgemeingültige Lösung / Codevorlage?

  Alt 19. Jul 2009, 17:36
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
Daniel Marschall
  Mit Zitat antworten Zitat