Hva er kodeinjeksjon på Windows?

Innholdsfortegnelse:

Hva er kodeinjeksjon på Windows?
Hva er kodeinjeksjon på Windows?

Video: Hva er kodeinjeksjon på Windows?

Video: Hva er kodeinjeksjon på Windows?
Video: Microsoft 365 Apps - YouTube 2024, April
Anonim
Kodeinjeksjon er vanlig på Windows. Applikasjoner "injiser" deler av sin egen kode i en annen løpende prosess for å endre sin oppførsel. Denne teknikken kan brukes til godt eller ondt, men uansett kan det føre til problemer.
Kodeinjeksjon er vanlig på Windows. Applikasjoner "injiser" deler av sin egen kode i en annen løpende prosess for å endre sin oppførsel. Denne teknikken kan brukes til godt eller ondt, men uansett kan det føre til problemer.

Kodeinjeksjon kalles også ofte DLL-injeksjon fordi den injiserte koden ofte er i form av en DLL-fil (dynamisk koblingsbibliotek). Programmer kan imidlertid også injisere andre typer kode som ikke er DLLer, til en prosess.

Hvilken kodeinjeksjon brukes til

Kodeinjeksjon brukes til å utføre alle slags triks og funksjonalitet på Windows. Mens legitime programmer bruker den, brukes den også av skadelig programvare. For eksempel:

  • Antivirusprogrammer injiserer ofte kode i nettlesere. De kan bruke den til å overvåke nettverkstrafikk og blokkere farlig webinnhold, for eksempel.
  • Ondsinnede programmer kan legge til kode i nettleseren din for å bedre spore surfing, stjele beskyttet informasjon som passord og kredittkortnumre, og endre nettleserinnstillingene.
  • Stardock's WindowBlinds, som temaer skrivebordet ditt, injiserer kode for å endre hvordan vinduer trekkes.
  • Stardocks Fences injiserer kode for å endre måten Windows-skrivebordet fungerer på.
  • AutoHotkey, som lar deg lage skript og tilordne system-brede hurtigtaster til dem, injiserer kode for å oppnå dette.
  • Grafikkdriveren er som NVIDIAs injeksjons-DLL-er for å utføre en rekke grafikkrelaterte oppgaver.
  • Noen programmer injiserer DLLer for å legge til flere menyalternativer til et program.
  • PC-spill-jukseværktøy injiserer ofte kode i spill for å modifisere deres oppførsel og få en urettferdig fordel over andre spillere.

Er kodeinjeksjon dårlig?

Denne teknikken brukes konstant av et bredt utvalg av applikasjoner på Windows. Det er den eneste virkelige måten å utføre en rekke oppgaver på. Sammenlignet med en moderne mobilplattform som Apples IOS eller Googles Android, er Windows-skrivebordet så kraftig fordi hvis det tilbyr denne typen fleksibilitet for utviklere.

Selvfølgelig, med all den kraften kommer det fare. Kodeinjeksjon kan forårsake problemer og feil i applikasjoner. Google sier at Windows-brukere som har kodeinnspilt i Chrome-nettleseren, er 15% mer sannsynlig å oppleve Chrome-krasj, og derfor jobber Google med å blokkere dette. Microsoft bemerker at kodeinnsprøytning kan brukes av ondsinnede applikasjoner for å manipulere med nettleserinnstillinger, noe som er en grunn til at den allerede er blokkert i Edge.

Microsoft gir til og med instruksjoner for å sjekke om tredjeparts DLLer er lastet i Microsoft Outlook, da de forårsaker så mange Outlook krasjer.

Som Microsoft-ansatt legger den i en utviklerblogg fra 2004:

DLL injection is never safe. You’re talking about squirting code into a process that was never designed, built, or tested by the process’s author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren’t there before or exacerbating issues that were there.

Kodeinnsprøytning er med andre ord en slags skitten hack. I en ideell verden ville det være en sikrere måte å oppnå dette som ikke forårsaket potensiell ustabilitet. Kodeinjeksjon er imidlertid bare en vanlig del av Windows-applikasjonsplattformen i dag. Det skjer stadig i bakgrunnen på din Windows PC. Du kan kalle det et nødvendig onde.

Slik sjekker du om injiserte DLLer

Du kan sjekke om kodeinnsprøytning på systemet ditt med Microsofts kraftige Application Explorer-program. Det er i utgangspunktet en avansert versjon av oppgavebehandleren som er fylt med flere funksjoner.

Last ned og kjør Prosess Explorer hvis du vil gjøre dette. Klikk på Vis> Nedre panelvisning> DLLer eller trykk Ctrl + D.

Velg en prosess i toppruten og se i den nedre ruten for å se DLLene som er lastet. Kolonnen "Firmanavn" gir en nyttig måte å filtrere denne listen på.
Velg en prosess i toppruten og se i den nedre ruten for å se DLLene som er lastet. Kolonnen "Firmanavn" gir en nyttig måte å filtrere denne listen på.

For eksempel er det normalt å se en rekke DLLer laget av "Microsoft Corporation" her, da de er en del av Windows. Det er også normalt å se DLLer laget av samme firma som prosessen i spørsmålet - "Google Inc." i tilfelle Chrome i skjermbildet nedenfor.

Vi kan også se noen DLLer laget av "AVAST Software" her. Dette indikerer at Avast antimalware-programvaren på vårt system injiserer kode som "Avast Script Blocking Filter Library" i Chrome.

Det er ikke mye du kan gjøre hvis du finner kodeinjeksjon på systemet ditt, bortsett fra å avinstallere programkoden for å forhindre at den forårsaker problemer. For eksempel, hvis Chrome krasjer regelmessig, vil du kanskje se om det er noen programmer som injiserer kode i Chrome, og avinstaller dem for å hindre dem i å tukle med Chrome's prosesser.
Det er ikke mye du kan gjøre hvis du finner kodeinjeksjon på systemet ditt, bortsett fra å avinstallere programkoden for å forhindre at den forårsaker problemer. For eksempel, hvis Chrome krasjer regelmessig, vil du kanskje se om det er noen programmer som injiserer kode i Chrome, og avinstaller dem for å hindre dem i å tukle med Chrome's prosesser.

Hvordan fungerer kodeinjeksjon?

Kodeinnsprøytning endrer ikke det underliggende programmet på disken din. I stedet venter det at applikasjonen skal kjøre, og den injiserer ekstra kode i den kjørende prosessen for å endre hvordan den fungerer.

Windows inneholder en rekke applikasjonsprogrammeringsgrensesnitt (APIer) som kan brukes til kodeinjeksjon. En prosess kan knytte seg til en målprosess, tildele minne, skrive en DLL eller en annen kode til det minnet, og instruer deretter målprosessen for å utføre koden. Windows hindrer ikke prosesser på datamaskinen din til å forstyrre hverandre som dette.

For mer teknisk informasjon, sjekk ut dette blogginnlegget forklarer hvordan utviklere kan injisere DLLer, og dette ser på andre typer kodeinjeksjon på Windows.

I noen tilfeller kan noen endre den underliggende koden på disken, for eksempel ved å erstatte en DLL-fil som følger med et PC-spill med en endret en for å aktivere utro eller piratkopiering.Dette er teknisk ikke "kodeinjeksjon." Koden blir ikke injisert i en løpende prosess, men programmet blir i stedet lurt til å laste inn en annen DLL med samme navn.

Anbefalt: