If-Koubou

Što je Injection koda u sustavu Windows?

Što je Injection koda u sustavu Windows? (Kako da)

Injektiranje koda je uobičajeno kod Windowsa. Aplikacije "ubrizgavaju" dijelove vlastitog koda u drugi proces koji se izvodi kako bi izmijenio svoje ponašanje. Ta se tehnika može koristiti za dobro ili zlo, no bilo kako to može uzrokovati probleme.

Injekcijsko kôd također se obično naziva injekcija DLL jer je injektirani kôd često u obliku DLL datoteke (dinamička veza). Međutim, aplikacije bi također mogle injektirati druge vrste koda koji nisu DLL u proces.

Koja injekcija koda se koristi za

Injektiranje koda koristi se za postizanje svih vrsta trikova i funkcija u sustavu Windows. Dok ga legitimni programi upotrebljavaju, upotrebljavaju i zlonamjerni softver. Na primjer:

  • Antivirusni programi često šalju kôd u web preglednike. Mogu je koristiti za praćenje mrežnog prometa i blokiranje opasnih web sadržaja, na primjer.
  • Zlonamjerni programi mogu dodati kôd u vaš web preglednik kako bi bolje pratili vaše pregledavanje, ukrali zaštićene informacije poput zaporki i brojeva kreditnih kartica i promijenili postavke preglednika.
  • Stardock's WindowBlinds, koji tematizira vašu radnu površinu, injektira kod za izmjenu načina izrade prozora.
  • Stardockove ograde injektiraju kod kako bi promijenili način rada radne površine sustava Windows.
  • AutoHotkey, koji vam omogućuje da stvorite skripte i dodijeliti hotkeys cijelom sustavu, injektira kôd kako bi to postigao.
  • Grafički vozač poput NVIDIA-e ubrizgava DLL-ove za obavljanje različitih zadataka vezanih uz grafiku.
  • Neki programi ubacuju DLL-ove za dodavanje dodatnih mogućnosti izbornika u aplikaciju.
  • Alati za varanje u računalnoj igri često ubacuju kod u igre kako bi izmijenili svoje ponašanje i stekli nepoštenu prednost nad ostalim igračima.

Je li kôd ubrizgavanja loš?

Ova se tehnika stalno koristi širokim rasponom aplikacija na sustavu Windows. To je jedini pravi način za postizanje različitih zadataka. U usporedbi s modernom mobilnom platformom kao što je Appleov iOS ili Googleov Android, Windows radna površina je toliko moćna jer nudi takvu fleksibilnost programerima.

Naravno, s tom snagom dolazi opasnost. Injektiranje koda može uzrokovati probleme i greške u aplikacijama. Google kaže da korisnici sustava Windows koji imaju kôd ubrizgava u svoj Chrome preglednik imaju 15% veću vjerojatnost da će doživjeti pada Chromea, zbog čega Google blokira to. Microsoft primjećuje da bi zlonamjerne aplikacije mogle koristiti zlonamjerne aplikacije kako bi se izmijenile postavke preglednika, što je jedan od razloga zbog kojeg je već blokiran u Edgeu.

Microsoft čak daje upute za provjeru jesu li DLL-ovi treće strane učitani u programu Microsoft Outlook jer uzrokuju toliko rušenja u programu Outlook.

Kao zaposlenik tvrtke Microsoft objavio ga je u blogu razvojnog programera iz 2004. godine:

Ubrizgavanje DLL-a nikada nije sigurno. Govorite o šifriranju koda u proces koji nikada nije bio dizajniran, izgrađen ili testiran autorovim postupkom i kooptiranje ili stvaranje niti za pokretanje tog koda. Rizik od stvaranja vremenskih, sinkronizacijskih ili resursa koji nisu postojali prije ili pogoršavajući probleme koji su bili tamo.

Drugim riječima, injektiranje koda je vrsta prljavog hakiranja. U idealnom svijetu, to bi bio sigurniji način da se to postigne, što nije uzrokovalo potencijalnu nestabilnost. Međutim, injekcija koda danas je samo standardni dio aplikacijske platforme sustava Windows. Stalno se događa u pozadini na vašem Windows računalu. Možete ga nazvati nužnim zlom.

Kako provjeriti ubrizgava DLL

Možete provjeriti ubrizgavanje koda na vašem sustavu uz Microsoftovu snažnu aplikaciju Process Explorer. U osnovi je napredna verzija upravitelja zadataka s dodatnim značajkama.

Ako to želite, preuzmite i pokrenite Process Explorer. Kliknite Prikaz> Prikaz niže ploče> DLL ili pritisnite Ctrl + D.

Odaberite proces u gornjem oknu i pogledajte u donjem oknu da biste vidjeli DLL koji su učitani. Stupac "Naziv tvrtke" korisno je za filtriranje tog popisa.

Primjerice, uobičajeno je vidjeti različite DLL-ove koje je napisao "Microsoft Corporation" jer su dio sustava Windows. Također je uobičajeno vidjeti DLL-ove istog proizvođača kao i proces koji je u pitanju - "Google Inc." u slučaju Chromea na slici zaslona u nastavku.

Također možemo pronaći nekoliko DLL-ova koje je ovdje napravio "AVAST Software". To znači da Avast antimalware softver na našem sustavu ubrizgava kôd poput "biblioteke filtriranja blokiranja Avast skripte" u Chrome.

Ne možete mnogo učiniti ako pronađete injekciju koda na vašem sustavu - osim deinstalacije koda za ubrizgavanje programa kako biste spriječili da uzrokuje probleme. Na primjer, ako se Chrome redovito ruši, možda želite provjeriti postoje li programi koji ubrizgavaju kôd u Chrome i deinstalirati ih kako bi spriječili neovlaštanje u Chromeovim procesima.

Kako funkcionira injekcija koda?

Injektiranje koda ne mijenja temeljni program na vašem disku. Umjesto toga, on čeka da se aplikacija pokrene i ubacuje dodatni kod u taj proces koji se pokreće kako bi promijenio način funkcioniranja.

Windows sadrži niz sučelja aplikacijskog programiranja (API-ja) koje se mogu koristiti za injektiranje koda. Postupak se može pridružiti ciljanom procesu, alocirati memoriju, napisati DLL ili neki drugi kôd u tu memoriju, a zatim uputiti ciljni postupak za izvršavanje koda. Windows ne sprječava da se procesi na vašem računalu međusobno ometaju.

Dodatne tehničke informacije potražite na ovom blogu koji objašnjava kako razvojni programeri mogu ubrizgati DLL-ove i ovaj pogled na druge oblike ubrizgavanja koda na sustavu Windows.

U nekim slučajevima netko može mijenjati temeljni kôd na disku - na primjer, zamjenom DLL datoteke koja dolazi s PC igrama s izmijenjenom kako bi se omogućilo varanje ili piratstvo.To tehnički nije "injektiranje koda". Kôd se ne ubrizgava u pokrenuti proces, ali program se umjesto toga zanima za učitavanje drugog DLL-a s istim imenom.

Slikovni kredit: Lukatme / Shutterstock.com.