Domača » kako » Kaj je vbrizgavanje kode v operacijskem sistemu Windows?

    Kaj je vbrizgavanje kode v operacijskem sistemu Windows?

    Vbrizgavanje kode je običajno v sistemu Windows. Aplikacije »vbrizgajo« dele lastne kode v drug tekoči proces, da spremenijo svoje vedenje. Ta tehnika se lahko uporablja za dobro ali zlo, toda v vsakem primeru lahko povzroči težave.

    Vbrizgavanje kode se običajno imenuje injekcija DLL, ker je vbrizgana koda pogosto v obliki datoteke DLL (dinamična povezovalna knjižnica). Vendar pa lahko aplikacije v proces vnesejo tudi druge vrste kod, ki niso DLL-ji.

    Za kaj se uporablja Injekcija kode

    Injekcija kode se uporablja za doseganje vseh vrst trikov in funkcionalnosti v sistemu Windows. Čeprav ga uporabljajo zakoniti programi, ga uporablja tudi zlonamerna programska oprema. Na primer:

    • Protivirusni programi pogosto vstavljajo kodo v spletne brskalnike. Z njim lahko nadzorujejo omrežni promet in na primer blokirajo nevarno spletno vsebino.
    • Zlonamerni programi lahko vašemu spletnemu brskalniku dodajo kodo za boljše sledenje brskanju, krajo zaščitenih podatkov, kot so gesla in številke kreditnih kartic, ter spreminjanje nastavitev brskalnika.
    • Stardock's WindowBlinds, ki tematizira vaše namizje, vbrizga kodo za spreminjanje risanja oken.
    • Stardock's Fences vbrizga kodo za spremembo načina delovanja namizja Windows.
    • AutoHotkey, ki vam omogoča, da ustvarite skripte in jim dodelite vroče tipke za celoten sistem, in tako vbrizga kodo.
    • Grafični gonilnik je všeč DLID-jev za vnašanje različnih grafičnih opravil.
    • Nekateri programi vstavljajo DLL-je za dodajanje dodatnih možnosti menija aplikaciji.
    • Orodja za goljufanje računalniških iger pogosto vnašajo kodo v igre, da spremenijo svoje vedenje in pridobijo nepošteno prednost pred drugimi igralci.

    Ali je vbrizgavanje kode slabo?

    Ta tehnika se stalno uporablja s široko paleto aplikacij v sistemu Windows. To je edini pravi način za doseganje različnih nalog. V primerjavi z moderno mobilno platformo, kot je Appleov iOS ali Googlov Android, je namizje Windows tako močno, ker če razvijalcem ponuja takšno prilagodljivost.

    Seveda, z vso to močjo pride nekaj nevarnosti. Vbrizgavanje kode lahko povzroči težave in napake v aplikacijah. Google pravi, da bodo uporabniki sistema Windows, ki imajo kodo, vbrizgano v svoj brskalnik Chrome, 15% bolj verjetno doživeli zrušitve brskalnika Chrome, zato Google s tem blokira. Microsoft ugotavlja, da bi lahko vbrizgavanje kode uporabljale zlonamerne aplikacije za spreminjanje nastavitev brskalnika, kar je eden od razlogov, da je že blokiran v programu Edge.

    Microsoft ponuja tudi navodila za preverjanje, ali so DLL-ji drugih izdelovalcev naloženi v Microsoft Outlooku, saj povzročajo toliko padcev Outlook-a.

    Kot je Microsoftova zaposlena oseba postavila v blog razvijalcev iz leta 2004:

    DLL injekcija ni nikoli varna. Govorite o brizganju kode v proces, ki ga avtor procesa ni nikoli oblikoval, izdelal ali preizkusil, in kooptira ali ustvarja nit za izvajanje te kode. Pri tem tvegate, da boste ustvarili časovno, sinhronizacijsko ali vire, ki niso bili tam pred ali pa so zaostrili vprašanja, ki so bila tam.

    Z drugimi besedami, vbrizgavanje kode je nekako umazan. V idealnem svetu bi obstajal varnejši način za dosego tega, ki ne bi povzročil morebitne nestabilnosti. Vendar pa je vbrizgavanje kode samo običajen del aplikacijske platforme Windows danes. Vedno se dogaja v ozadju računalnika z operacijskim sistemom Windows. Lahko bi rekli, da je to potrebno zlo.

    Kako preveriti vbrizgane DLL

    Za vbrizganje kode lahko preverite, ali je Microsoftova zmogljiva aplikacija Process Explorer. To je v bistvu napredna različica upravitelja opravil z dodatnimi funkcijami.

    Prenesite in zaženite Process Explorer, če želite to storiti. Kliknite View> Lower Pane View> DLLs ali pritisnite Ctrl + D.

    V zgornjem podoknu izberite proces in v spodnjem oknu poglejte DLL-je, ki so naloženi. Stolpec »Ime podjetja« je uporaben način filtriranja tega seznama.

    Na primer, tukaj je običajno videti različne DLL-je, ki jih je ustvaril Microsoft Corporation, saj so del sistema Windows. Prav tako je normalno videti DLL-je, ki jih izvede isto podjetje kot zadevni postopek - »Google Inc.« v primeru Chroma v spodnjem posnetku zaslona.

    Tukaj lahko opazimo tudi nekaj DLL-jev, ki jih je ustvarila »AVAST Software«. To pomeni, da programska oprema Avast antimalware v našem sistemu vstavlja kodo, kot je »Avast Script Blocking filter library« v Chrome.

    Ne morete storiti veliko, če najdete kodno injekcijo v vašem sistemu, razen če odstranite programsko vbrizgajočo kodo, da preprečite težave. Če se Chrome na primer redno sesuje, boste morda želeli videti, ali obstajajo programi, ki vstavljajo kodo v Chrome, in jih odstranite, da bi preprečili nedovoljeno spreminjanje Chromeovih procesov.

    Kako deluje vbrizgavanje kode??

    Vbrizgavanje kode ne spremeni osnovne aplikacije na vašem disku. Namesto tega čaka, da se ta program zažene in v ta postopek vbrizga dodatno kodo, da spremeni delovanje.

    Windows vključuje različne vmesnike za programiranje aplikacij (API), ki se lahko uporabljajo za vbrizgavanje kode. Proces se lahko priključi na ciljni proces, dodeli pomnilnik, napiše DLL ali drugo kodo v ta pomnilnik in nato naroči ciljnemu procesu, da izvrši kodo. Windows ne preprečuje, da bi postopki v računalniku tako ovirali drug drugega.

    Če želite več tehničnih informacij, si oglejte objavo v tem spletnem dnevniku in razložite, kako lahko razvijalci vstavljajo datoteke DLL in ta pogled na druge vrste vbrizgavanja kode v sistemu Windows.

    V nekaterih primerih lahko nekdo spremeni osnovno kodo na disku, na primer z zamenjavo datoteke DLL, ki je priložena računalniški igri, s spremenjeno datoteko, ki omogoča goljufanje ali piratstvo. Tehnično to ni »injekcija kode«. Koda se ne vbrizga v tekoči proces, vendar se program namesto tega pretaka, da naloži drugačen DLL z istim imenom..

    Zasluge za sliko: Lukatme / Shutterstock.com.