Startseite » wie man » Was ist Code Injection unter Windows?

    Was ist Code Injection unter Windows?

    Code-Injection 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 Bösen verwendet werden, aber in beiden Fällen kann es Probleme geben.

    Code-Injection wird häufig auch als DLL-Injection bezeichnet, da der injizierte Code häufig in Form einer DLL-Datei (Dynamic Link Library) vorliegt. Anwendungen können jedoch auch andere Arten von Code einführen, die keine DLLs sind, in einen Prozess.

    Wofür wird Code-Injection verwendet?

    Code-Injection wird verwendet, um alle Arten von Tricks und Funktionen unter Windows auszuführen. Während legitime Programme es verwenden, wird es auch von Malware verwendet. Zum Beispiel:

    • Antivirenprogramme fügen häufig Code in Webbrowser ein. Sie können damit den Netzwerkverkehr überwachen und beispielsweise gefährliche Webinhalte blockieren.
    • Schädliche Programme fügen Ihrem Webbrowser möglicherweise Code hinzu, um Ihr Surfen besser zu verfolgen, geschützte Informationen wie Kennwörter und Kreditkartennummern zu stehlen und Ihre Browsereinstellungen zu ändern.
    • Die WindowBlinds von Stardock, die Themen Ihres Desktops, fügt Code ein, um die Darstellung der Fenster zu ändern.
    • Stardocks Zäune injizieren Code, um die Funktionsweise des Windows-Desktops zu ändern.
    • AutoHotkey, mit dem Sie Skripts erstellen und ihnen systemweite Hotkeys zuweisen können, fügt Code dazu ein.
    • Grafiktreiber wie NVIDIAs injizieren DLLs, um verschiedene grafikbezogene Aufgaben auszuführen.
    • Einige Programme injizieren DLLs, um einer Anwendung weitere Menüoptionen hinzuzufügen.
    • PC-Betrugstools fügen häufig Code in Spiele ein, um ihr Verhalten zu ändern und einen unfairen Vorteil gegenüber anderen Spielern zu erlangen.

    Ist die Code-Injektion schlecht?

    Diese Technik wird ständig von einer Vielzahl von Anwendungen unter Windows verwendet. Nur so können Sie eine Vielzahl von Aufgaben lösen. Im Vergleich zu einer modernen mobilen Plattform wie Apples iOS oder Googles Android ist der Windows-Desktop so leistungsstark, weil er Entwicklern diese Flexibilität bietet.

    Mit all dieser Kraft geht natürlich eine Gefahr einher. Code-Injection kann zu Problemen und Fehlern in Anwendungen führen. Google gibt an, dass Windows-Benutzer, die Code in ihren Chrome-Browser injiziert haben, 15% häufiger von Chrome abstürzen, weshalb Google daran arbeitet, diesen zu blockieren. Microsoft weist darauf hin, dass die Code-Injektion von böswilligen Anwendungen verwendet werden könnte, um die Browsereinstellungen zu manipulieren. Dies ist einer der Gründe, warum sie bereits in Edge blockiert wurde.

    Microsoft stellt sogar Anweisungen zur Verfügung, um zu prüfen, ob DLLs von Drittanbietern in Microsoft Outlook geladen werden, da sie so viele Outlook-Abstürze verursachen.

    Als Microsoft-Mitarbeiter steckte es 2004 in ein Entwickler-Blog:

    DLL-Injection ist niemals sicher. Sie sprechen davon, Code in einen Prozess zu spritzen, der vom Autor des Prozesses nie entworfen, erstellt oder getestet wurde, und Sie müssen einen Thread für die Ausführung dieses Codes erstellen oder erstellen. Sie laufen Gefahr, Timing-, Synchronisierungs- oder Ressourcenprobleme zu verursachen, die vorher nicht vorhanden waren, oder die Probleme zu verstärken, die dort vorhanden waren.

    Mit anderen Worten, Code-Injection ist eine Art schmutziger Hack. In einer idealen Welt gibt es einen sichereren Weg, dies zu erreichen, der keine potenzielle Instabilität verursacht hat. Code-Injection ist jedoch heute ein normaler Bestandteil der Windows-Anwendungsplattform. Auf Ihrem Windows-PC geschieht dies ständig im Hintergrund. Man könnte es ein notwendiges Übel nennen.

    So prüfen Sie auf eingespritzte DLLs

    Mit der leistungsstarken Process Explorer-Anwendung von Microsoft können Sie die Code-Injektion in Ihr System überprüfen. Es ist im Grunde eine erweiterte Version des Task-Managers mit zusätzlichen Funktionen.

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

    Wählen Sie im oberen Bereich einen Prozess aus, und sehen Sie im unteren Bereich nach den geladenen DLLs. Die Spalte "Firmenname" bietet eine nützliche Möglichkeit zum Filtern dieser Liste.

    Zum Beispiel ist es normal, eine Vielzahl von DLLs der Microsoft Corporation zu sehen, da diese Teil von Windows sind. Es ist auch normal, dass DLLs von derselben Firma wie der fragliche Prozess erstellt werden - "Google Inc." im Fall von Chrome in der Abbildung unten.

    Hier finden Sie auch einige DLLs von "AVAST Software". Dies weist darauf hin, dass die Avast-Antimalwaresoftware auf unserem System Code wie die Filterbibliothek "Avast Script Blocking" in Chrome einfügt.

    Sie können nicht viel tun, wenn Sie Code-Injection auf Ihrem System finden - abgesehen von der Deinstallation des Programms, das Code einfügt, um zu verhindern, dass es Probleme verursacht. Wenn Chrome beispielsweise regelmäßig abstürzt, möchten Sie vielleicht nachsehen, ob Programme Code in Chrome einfügen, und sie deinstallieren, um zu verhindern, dass sie an den Prozessen von Chrome manipulieren.

    Wie funktioniert Code Injection??

    Die Code-Injection ändert die zugrunde liegende Anwendung auf Ihrer Festplatte nicht. Stattdessen wartet er auf die Ausführung dieser Anwendung und fügt zusätzlichen Code in den laufenden Prozess ein, um die Funktionsweise zu ändern.

    Windows enthält eine Vielzahl von Anwendungsprogrammierschnittstellen (APIs), die für die Code-Injection verwendet werden können. Ein Prozess kann sich an einen Zielprozess anhängen, Speicher zuweisen, eine DLL oder einen 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 Blogeintrag, in dem erläutert wird, wie Entwickler DLLs einschleusen können. In diesem Artikel werden auch andere Arten von Code-Injection unter Windows beschrieben.

    In einigen Fällen kann es vorkommen, dass jemand den zugrunde liegenden Code auf der Festplatte ändert - 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 keine "Code-Injection". Der Code wird nicht in einen laufenden Prozess eingefügt, sondern das Programm wird dazu verleitet, eine andere DLL mit demselben Namen zu laden.

    Bildnachweis: Lukatme / Shutterstock.com.