Connect with us

Wie man

Was ist Codeinjektion unter Windows?

Was ist Codeinjektion unter Windows?

Codeinjektion ist unter Windows üblich. Anwendungen „injizieren“ Teile ihres eigenen Codes in einen anderen laufenden Prozess, um dessen Verhalten zu ändern. Diese Technik kann zum Guten oder zum Bösen verwendet werden, kann aber in beiden Fällen zu Problemen führen.

Codeinjektion wird häufig auch als DLL-Injektion bezeichnet, da der injizierte Code häufig in Form einer DLL-Datei (Dynamic Link Library) vorliegt. Anwendungen können jedoch auch andere Codetypen, die keine DLLs sind, in einen Prozess einschleusen.

Wofür wird Code-Injektion verwendet?

Codeinjektion wird verwendet, um alle möglichen Tricks und Funktionen unter Windows auszuführen. Während legitime Programme es verwenden, wird es auch von Malware verwendet. Beispielsweise:

  • Antivirenprogramme injizieren häufig Code in Webbrowser. Sie können damit beispielsweise den Netzwerkverkehr überwachen und gefährliche Webinhalte blockieren.
  • Schädliche Programme können Ihrem Webbrowser Code hinzufügen, um Ihr Surfverhalten besser zu verfolgen, geschützte Informationen wie Passwörter und Kreditkartennummern zu stehlen und Ihre Browsereinstellungen zu ändern.
  • Stardocks WindowBlinds, die Ihren Desktop thematisieren, fügt Code ein, um zu ändern, wie Fenster gezeichnet werden.
  • Stardock’s Fences fügt Code ein, um die Funktionsweise des Windows-Desktops zu ändern.
  • AutoHotkey, mit dem Sie Skripte erstellen und ihnen systemweite Hotkeys zuweisen können, fügt Code ein, um dies zu erreichen.
  • Grafiktreiber wie NVIDIAs injizieren DLLs, um eine Vielzahl von grafikbezogenen Aufgaben zu erfüllen.
  • Einige Programme injizieren DLLs, um einer Anwendung zusätzliche Menüoptionen hinzuzufügen.
  • Cheating-Tools für PC-Spiele injizieren oft Code in Spiele, um ihr Verhalten zu ändern und sich einen unfairen Vorteil gegenüber anderen Spielern zu verschaffen.

Ist Codeinjektion schlecht?

Diese Technik wird ständig von einer Vielzahl von Anwendungen unter Windows verwendet. Es ist die einzige wirkliche Möglichkeit, eine Vielzahl von Aufgaben zu erfüllen. Im Vergleich zu einer modernen mobilen Plattform wie Apples iOS oder Googles Android ist der Windows-Desktop so leistungsstark, weil er Entwicklern diese Art von Flexibilität bietet.

Natürlich geht mit all dieser Macht eine gewisse Gefahr einher. Code-Injection kann zu Problemen und Fehlern in Anwendungen führen. Google sagt, dass Windows-Benutzer, die Code in ihren Chrome-Browser eingeschleust haben, mit 15 % höherer Wahrscheinlichkeit Chrome-Abstürze erleben, weshalb Google daran arbeitet, dies zu blockieren. Microsoft weist darauf hin, dass die Codeinjektion von bösartigen Anwendungen verwendet werden könnte, um Browsereinstellungen zu manipulieren, was ein Grund dafür ist, dass sie in Edge bereits blockiert ist.

Microsoft bietet sogar Anweisungen um zu überprüfen, ob DLLs von Drittanbietern in Microsoft Outlook geladen sind, da sie so viele Outlook-Abstürze verursachen.

Wie ein Microsoft-Mitarbeiter es in ein Entwicklerblog ab 2004:

DLL-Injektion ist nie sicher. Sie sprechen davon, Code in einen Prozess zu spritzen, der nie vom Autor des Prozesses entworfen, gebaut oder getestet wurde, und einen Thread zu kooptieren oder zu erstellen, um diesen Code auszuführen. Sie laufen Gefahr, Timing-, Synchronisations- oder Ressourcenprobleme zu verursachen, die vorher nicht vorhanden waren, oder bestehende Probleme zu verschlimmern.

Mit anderen Worten, Code-Injection ist eine Art schmutziger Hack. In einer idealen Welt gäbe es einen sichereren Weg, dies zu erreichen, ohne potenzielle Instabilität zu verursachen. Codeinjektion ist jedoch heute nur noch ein normaler Bestandteil der Windows-Anwendungsplattform. Es passiert ständig im Hintergrund auf Ihrem Windows-PC. Man könnte es ein notwendiges Übel nennen.

So suchen Sie nach injizierten DLLs

Sie können mit den leistungsstarken Process Explorer Anwendung. Es ist im Grunde eine erweiterte Version des Task-Managers, die mit zusätzlichen Funktionen ausgestattet ist.

Laden Sie den Process Explorer herunter und führen Sie ihn aus, wenn Sie dies tun möchten. Klicken Sie auf Ansicht > Ansicht im unteren Bereich > DLLs oder drücken Sie Strg+D.

Wählen Sie im oberen Bereich einen Prozess aus und sehen Sie im unteren Bereich nach, welche DLLs geladen sind. Die Spalte „Firmenname“ bietet eine nützliche Möglichkeit, diese Liste zu filtern.

Zum Beispiel ist es normal, hier eine Vielzahl von DLLs von „Microsoft Corporation“ zu sehen, da sie Teil von Windows sind. Es ist auch normal, DLLs zu sehen, die von derselben Firma wie der fragliche Prozess erstellt wurden – „Google Inc“. im Fall von Chrome im Screenshot unten.

Wir können hier auch einige DLLs von „AVAST Software“ entdecken. Dies weist darauf hin, dass die Avast-Antimalware-Software auf unserem System Code wie die „Avast Script Blocking-Filterbibliothek“ in Chrome injiziert.

Es gibt nicht viel, was Sie tun können, wenn Sie Code-Injection auf Ihrem System finden – außer das Programm zu deinstallieren, das Code injiziert, um zu verhindern, dass es Probleme verursacht. Wenn Chrome beispielsweise regelmäßig abstürzt, möchten Sie möglicherweise sehen, ob Programme Code in Chrome injizieren, und diese deinstallieren, um zu verhindern, dass sie die Prozesse von Chrome manipulieren.

Wie funktioniert die Codeinjektion?

Die Codeinjektion ändert die zugrunde liegende Anwendung auf Ihrem Datenträger nicht. Stattdessen wartet es auf die Ausführung dieser Anwendung und fügt zusätzlichen Code in diesen laufenden Prozess ein, um seine Funktionsweise zu ändern.

Windows enthält eine Vielzahl von Anwendungsprogrammierschnittstellen (APIs), die für die Codeinjektion verwendet werden können. Ein Prozess kann sich an einen Zielprozess anhängen, Speicher zuweisen, eine DLL oder anderen Code in diesen Speicher schreiben und dann den Zielprozess anweisen, den Code auszuführen. Windows verhindert nicht, dass Prozesse auf Ihrem Computer sich so gegenseitig stören.

Weitere technische Informationen finden Sie in diesem Blogbeitrag, in dem erklärt wird wie Entwickler DLLs einschleusen können und dieser schau dir an andere Arten der Codeinjektion unter Windows.

In einigen Fällen kann jemand den zugrunde liegenden Code auf der Festplatte ändern, beispielsweise indem er eine DLL-Datei, die mit einem PC-Spiel geliefert wird, durch eine modifizierte ersetzt, um Betrug oder Piraterie zu ermöglichen. Dies ist technisch gesehen keine „Code-Injektion“. Der Code wird nicht in einen laufenden Prozess eingefügt, sondern das Programm wird stattdessen dazu verleitet, eine andere DLL mit demselben Namen zu laden.

Bildnachweis: Lukatme/Shutterstock.com.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia