DLL-Injection

DLL-Injection

In der Informatik bezeichnet DLL-Injection eine Technik, mit der man Code im Adressraum eines anderen Prozesses zur Ausführung bringt, in dem man diesen Prozess zwingt, eine programmfremde Dynamic Link Library (DLL) zu laden. Im Prinzip ist diese Technik bei allen Betriebssystemen verfügbar, die dynamische Bibliotheken unterstützen, der Begriff DLL-Injection bezieht sich jedoch gewöhnlich auf das Betriebssystem Microsoft Windows.

Diese Technik wird nur benötigt, wenn der Quellcode eines Programms, dessen Verhalten man beeinflussen möchte, nicht verfügbar ist. Somit wird DLL-Injection häufig von sogenannten Third-Party Anbietern genutzt, um das Verhalten eines Programms in einer Weise anzupassen, die vom Entwickler des ursprünglichen Programms nicht vorgesehen wurde. Ein typisches Beispiel für eine die Technik der DLL-Injection nutzende Anwendung ist ein Profiler.

Inhaltsverzeichnis

Verfügbare Techniken unter Windows

Unter Microsoft Windows gibt es verschiedene Techniken eine DLL-Injection zu bewerkstelligen. Die wichtigsten sind dabei folgende:

  • Windows-Registry: In der Registrierung (registry) können DLLs angegeben werden, die global bei dem Start jeden Programms zusätzlich geladen werden.
  • Hooks: Durch die Nutzung von Windows-Hooks ist es möglich eigene DLLs an fremde Prozesse (sowohl selektiv, als auch global) anzuhängen. Zusätzlich lassen sich mithilfe dieser Technik gleich bestimmte Programmaktionen abfangen/verhindern (siehe Windows-Hooks).
  • CreateRemoteThread: Die CreateRemoteThread API ermöglicht es einen Thread von einer beliebigen Speicheradresse mit der Übergabe eines Arguments zu starten. Dadurch ist es möglich bei Aufruf der Speicheradresse in welcher die LoadLibrary API eines Prozesses liegt mit dem Argument des zu ladenden DLL-Namens diese DLL in einen fremden Prozess zu laden.
  • Direkter Speicherzugriff: Mithilfe der Windows-Funktionen AllocMemory und WriteMemory ist es möglich direkt auf den Speicher fremder Prozesse zuzugreifen. So lässt sich neuer Speicher (AllocMemory) anfordern und in diesen eine eigene Funktion zum Nachladen der eigenen DLL schreiben.
  • Durch Nutzung von Betriebssystemfunktionen (APIs) zur Manipulation von Prozessen (process manipulations functions) kann das Nachladen einer zusätzlichen DLL erreicht werden.

Nutzung durch bösartige Software

Die Nutzung von DLL-Injection ist für bösartige Software sehr attraktiv. Diese Technik ermöglicht es, Code unter dem Deckmantel eines anderen Programms auszuführen. Dies ist deshalb interessant, da dadurch Zugriffe auf das Internet vor einer Desktop-Firewall verschleiert werden können. Hierüber können beispielsweise auf dem infizierten Computer ausgespähte Passwörter unbemerkt versendet werden. Um diesem Problem zu begegnen, versuchen einige Desktop-Firewalls, durch eine Analyse des Systems eine DLL-Injection zu erkennen, was ihnen jedoch nicht immer gelingt.

Gegenmaßnahmen

  • Zum Schreiben in den Speicher fremder Anwendungen sind Administratorrechte erforderlich
  • Auf geschützte Prozesse (protected process, mit Windows Vista für den Protected Media Path eingeführt) kann nicht zugegriffen werden, sofern der schreibende Prozess nicht auch ein geschützter Prozess ist

Literatur

  • Jeffrey Richter: Programming Applications for Microsoft Windows. 4th edition. Microsoft Press, Redmond WA 1999, ISBN 1-57231-996-8 (Microsoft Programming Series).

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • DLL injection — In computer programming, DLL injection is a technique used to run code within the address space of another process by forcing it to load a dynamic link library.[1] DLL injection is often used by third party developers to influence the behavior of …   Wikipedia

  • Dll-injection — In der Informatik bezeichnet DLL Injection eine Technik, mit der man Code im Adressraum eines anderen Prozesses zur Ausführung bringt, in dem man diesen Prozess zwingt, eine Dynamic Link Library (DLL) zu laden. Im Prinzip ist diese Technik bei… …   Deutsch Wikipedia

  • Code injection — is the exploitation of a computer bug that is caused by processing invalid data. Code injection can be used by an attacker to introduce (or inject ) code into a computer program to change the course of execution. The results of a code injection… …   Wikipedia

  • Lethal Injection (album) — Infobox Album | Name = Lethal Injection Type = Album Artist = Ice Cube Released = December 7, 1993 Recorded = 1993 Genre = Gangsta rap Length = 56:21 Label = Priority Records Producer = QD3, Madness 4 Real, Sir Jinx, Ice Cube Reviews = *Allmusic… …   Wikipedia

  • Hell Injection — Infobox Album Name = Hell Injection Type = studio Artist = Arkhon Infaustus Released = 2001 Recorded = Genre = Blackened death metal Length = 43:53 Label = Osmose Productions Producer = Reviews = Last album = Dead Cunt Maniac (2000) This album =… …   Wikipedia

  • Dynamic Link Library — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt Dynamic Link Library Dateiendung: .dll, .DLL MIME Type …   Deutsch Wikipedia

  • Beast Trojan (trojan horse) — Infobox Software name = Beast Trojan|website = No caption = screenshot of the Beast RAT developer = Tataye operating system = Microsoft Windows latest release version = 2.07 latest release date = August 3, 2004 genre = remote administration,… …   Wikipedia

  • Cheat — Cheatmodul „Gameshark“ für Nintendos N64 Als Cheat (englisch für Betrug, Schwindel) wird die Möglichkeit bezeichnet, in einem Computerspiel selbst oder durch externe Programme das Spiel in einer nicht dem gewöhnlichen Spielverlauf entsprechenden… …   Deutsch Wikipedia

  • Windows Vista — Part of the Microsoft Windows family …   Wikipedia

  • Security and safety features new to Windows Vista — There are a number of security and safety features new to Windows Vista, most of which are not available in any prior Microsoft Windows operating system release.Beginning in early 2002 with Microsoft s announcement of their Trustworthy Computing… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”