Startpagina » hoe » Wat is code-injectie op Windows?

    Wat is code-injectie op Windows?

    Code-injectie is gebruikelijk op Windows. Toepassingen "injecteren" stukken van hun eigen code in een ander lopend proces om het gedrag ervan te wijzigen. Deze techniek kan worden gebruikt voor goed of kwaad, maar het kan hoe dan ook problemen veroorzaken.

    Code-injectie wordt ook vaak DLL-injectie genoemd omdat de geïnjecteerde code vaak de vorm heeft van een DLL-bestand (Dynamic Link Library). Toepassingen kunnen echter ook andere typen code injecteren die geen DLL's zijn in een proces.

    Welke code-injectie wordt gebruikt voor

    Code-injectie wordt gebruikt om allerlei soorten trucs en functionaliteit op Windows uit te voeren. Hoewel legitieme programma's het gebruiken, wordt het ook gebruikt door malware. Bijvoorbeeld:

    • Antivirusprogramma's injecteren vaak code in webbrowsers. Ze kunnen het gebruiken om het netwerkverkeer te volgen en bijvoorbeeld gevaarlijke webinhoud te blokkeren.
    • Schadelijke programma's kunnen code aan uw webbrowser toevoegen om uw browser beter te volgen, beschermde informatie te stelen, zoals wachtwoorden en creditcardnummers, en uw browserinstellingen te wijzigen.
    • Stardock's WindowBlinds, die uw bureaublad als thema heeft, injecteert code om te wijzigen hoe vensters worden getekend.
    • Stardock's Fences injecteert code om de manier waarop het Windows-bureaublad werkt te veranderen.
    • AutoHotkey, waarmee u scripts kunt maken en systeembrede sneltoetsen aan hen kunt toewijzen, injecteert code om dit te bereiken.
    • Grafische stuurprogramma's zoals NVIDIA's injecteren DLL's om verschillende grafische taken uit te voeren.
    • Sommige programma's injecteren DLL's om extra menu-opties aan een toepassing toe te voegen.
    • Speelspelletjes voor pc-spellen injecteren vaak code in games om hun gedrag aan te passen en krijgen een oneerlijk voordeel ten opzichte van andere spelers.

    Is code-injectie slecht??

    Deze techniek wordt constant gebruikt door een grote verscheidenheid aan toepassingen op Windows. Het is de enige echte manier om verschillende taken uit te voeren. Vergeleken met een modern mobiel platform zoals iOS van Apple of Android van Google, is de Windows-desktop zo krachtig omdat ontwikkelaars dit soort flexibiliteit bieden aan ontwikkelaars..

    Natuurlijk komt met al die kracht gevaar. Code-injectie kan problemen en fouten in toepassingen veroorzaken. Google zegt dat Windows-gebruikers die code hebben geïnjecteerd in hun Chrome-browser 15% meer kans hebben om Chrome-crashes te ervaren. Daarom werkt Google eraan dit probleem te verhelpen. Microsoft merkt op dat code-injectie kan worden gebruikt door kwaadwillende toepassingen om te kunnen knoeien met browserinstellingen, wat één reden is waarom het al in Edge is geblokkeerd.

    Microsoft biedt zelfs instructies om te controleren of DLL's van derden zijn geladen in Microsoft Outlook, omdat ze zoveel Outlook-crashes veroorzaken.

    Zoals een Microsoft-medewerker het in 2004 in een ontwikkelaarsblog plaatste:

    DLL-injectie is nooit veilig. Je hebt het over het spuiten van code in een proces dat nooit door de auteur van het proces is ontworpen, gebouwd of getest en co-open of een thread maken om die code uit te voeren. U loopt het risico dat u problemen met de timing, synchronisatie of bronnen veroorzaakt die er eerder niet waren of die de problemen verergerden.

    Met andere woorden, code-injectie is een soort vuile hack. In een ideale wereld zou er een veiliger manier zijn om dit te bereiken, wat geen potentiële instabiliteit veroorzaakte. Echter, code-injectie is vandaag nog maar een normaal onderdeel van het Windows-applicatieplatform. Het gebeurt constant op de achtergrond op uw Windows-pc. Je zou het een noodzakelijk kwaad kunnen noemen.

    Hoe te controleren op geïnjecteerde DLL's

    U kunt controleren op code-injectie op uw systeem met de krachtige Process Explorer-toepassing van Microsoft. Het is eigenlijk een geavanceerde versie van de Task Manager boordevol extra functies.

    Download en voer Process Explorer uit als u dit wilt doen. Klik op Weergave> Weergave onderste paneel> DLL's of druk op Ctrl + D.

    Selecteer een proces in het bovenste deelvenster en kijk in het onderste deelvenster naar de DLL's die zijn geladen. De kolom 'Bedrijfsnaam' biedt een handige manier om deze lijst te filteren.

    Het is bijvoorbeeld normaal om hier verschillende DLL's van "Microsoft Corporation" te zien, aangezien deze deel uitmaken van Windows. Het is ook normaal om DLL's van hetzelfde bedrijf te zien als het betreffende proces - "Google Inc." in het geval van Chrome in de onderstaande schermafbeelding.

    We kunnen hier ook enkele DLL's van "AVAST Software" herkennen. Dit geeft aan dat de Avast-antimalware-software op ons systeem code zoals de "Avast Script Blocking filterbibliotheek" injecteert in Chrome.

    U kunt niet veel doen als u code-injectie op uw systeem vindt, behalve als u de programma-injectiekode verwijdert om te voorkomen dat deze problemen veroorzaakt. Als Chrome bijvoorbeeld regelmatig crasht, wilt u misschien weten of er programma's zijn die code in Chrome injecteren en deze verwijderen om te voorkomen dat ze met Chrome-processen knoeien.

    Hoe werkt code-injectie??

    Code-injectie wijzigt de onderliggende toepassing op uw schijf niet. In plaats daarvan wacht het totdat die toepassing wordt uitgevoerd en wordt er extra code in dat lopende proces geïnjecteerd om de werking ervan te wijzigen.

    Windows bevat verschillende API's (application programming interfaces) die kunnen worden gebruikt voor code-injectie. Een proces kan zich hechten aan een doelproces, geheugen toewijzen, een DLL of andere code naar dat geheugen schrijven en vervolgens het doelproces instrueren om de code uit te voeren. Windows voorkomt niet dat processen op uw computer elkaar op deze manier storen.

    Voor meer technische informatie, bekijk deze blogpost met uitleg over hoe ontwikkelaars DLL's kunnen injecteren en kijk naar andere soorten code-injectie op Windows.

    In sommige gevallen kan iemand de onderliggende code op schijf wijzigen, bijvoorbeeld door een DLL-bestand te vervangen dat wordt geleverd bij een pc-spel met een aangepast spel om valsspelen of piraterij mogelijk te maken. Dit is technisch gezien geen "code-injectie". De code wordt niet in een lopend proces geïnjecteerd, maar het programma wordt in plaats daarvan misleid door het laden van een andere DLL met dezelfde naam.

    Beeldcredits: Lukatme / Shutterstock.com.