Mis on koodisüstimine Windowsis?
Koodisüstimine on Windowsis tavaline. Rakendused “süstivad” oma koodi tükki teise jooksva protsessi, et muuta selle käitumist. Seda tehnikat saab kasutada hea või kurja jaoks, kuid mõlemal juhul võib see põhjustada probleeme.
Koodisüstimist nimetatakse tavaliselt ka DLL-süstimiseks, sest süstitud kood on sageli DLL-i (dünaamilise lingi raamatukogu) vormis. Samas võivad rakendused sisestada ka muud tüüpi koodi, mis ei ole protsessis DLL.
Millist koodi süstimist kasutatakse
Koodisüstimist kasutatakse igasuguste trikkide ja funktsionaalsuse saavutamiseks Windowsis. Kuigi õigustatud programmid seda kasutavad, kasutab seda ka pahavara. Näiteks:
- Viirusetõrjeprogrammid süstivad sageli veebibrauseritesse koodi. Nad saavad seda kasutada näiteks võrguliikluse jälgimiseks ja ohtliku veebisisu blokeerimiseks.
- Pahatahtlikud programmid võivad veebibrauserisse koodi lisada, et paremini jälgida teie sirvimist, varastada kaitstud teavet, nagu paroolid ja krediitkaardi numbrid, ning muuta oma brauseri seadeid.
- Stardocki WindowBlinds, mis töötab teie töölaual, süstib koodi, et muuta akende joonistamise viisi.
- Stardocki tarad süstivad koodi, et muuta Windowsi töölauda.
- AutoHotkey, mis võimaldab teil luua skripte ja määrata neile süsteemseid kiirklahve, sisestab selle täitmiseks koodi.
- Graafika draiver nagu NVIDIA süstib DLL-e, et täita erinevaid graafikaga seotud ülesandeid.
- Mõned programmid süstivad DLL-i, et lisada rakendusele täiendavaid menüüvalikuid.
- Arvutimängude petmine tööriistad süstivad sageli mängudesse koodi, et muuta nende käitumist ja saada ebaõiglast eelist teiste mängijatega võrreldes.
Kas koodisüstimine on halb?
Seda tehnikat kasutatakse pidevalt mitmesugustes rakendustes Windowsis. See on ainus reaalne viis erinevate ülesannete täitmiseks. Võrreldes kaasaegse mobiilplatvormiga, nagu Apple'i iOS või Google'i Android, on Windowsi töölaud nii võimas, et kui pakkuda sellist paindlikkust arendajatele.
Loomulikult tekib kogu selle võimu tõttu oht. Koodide süstimine võib rakendustes põhjustada probleeme ja vigu. Google ütleb, et Windowsi kasutajad, kes on sisestanud oma Chrome'i brauserisse koodi, on 15% rohkem tõenäoliselt Chrome'i jooksnud, mistõttu Google töötab selle blokeerimise nimel. Microsoft märgib, et pahatahtlikud rakendused võivad koodisüsti kasutada brauseri seadete rikkumiseks, mis on üks põhjus, miks see on juba Edge'is blokeeritud.
Microsoft pakub isegi juhiseid, et kontrollida, kas kolmanda osapoole DLL-e laaditakse Microsoft Outlookis, kuna need põhjustavad nii palju Outlooki jooksvaid katseid.
Kuna Microsofti töötaja pani selle arendaja blogisse alates 2004. aastast:
DLL-i süstimine pole kunagi ohutu. Te räägite pritsimiskoodist protsessiks, mida protsessi autor ei ole kunagi kujundanud, ehitanud ega testinud, ning selle koodi käivitamiseks ühisvalikut või lõimimist. Teil on oht luua ajastus, sünkroniseerimine või ressursiküsimused, mis ei olnud seal enne või raskendanud probleeme, mis seal olid.
Teisisõnu, koodisüst on mingi räpane häkk. Ideaalses maailmas oleks selle ohutum viis, mis ei põhjustanud potentsiaalset ebastabiilsust. Kuid koodisüstimine on täna Windowsi rakendusplatvormi tavaline osa. See toimub pidevalt taustal teie Windows PC-s. Te võite seda nimetada vajalikuks kurjaks.
Kuidas kontrollida süstitud DLL-e
Microsofti võimsa protsessirakenduse abil saate kontrollida oma süsteemis koodi sisestamist. See on põhimõtteliselt Task Manager täiustatud versioon, mis on varustatud täiendavate funktsioonidega.
Kui soovite seda teha, laadige alla ja käivitage Process Explorer. Klõpsake nuppu View> View Pane View> DLL või vajutage Ctrl + D.
Valige ülemisest paanist protsess ja vaadake alumistel paneelidel laaditud DLL-id. Veerg „Ettevõtte nimi” annab selle nimekirja filtreerimiseks kasuliku viisi.
Näiteks on tavaline, et siin näeb Microsoft Corporationi erinevaid DLL-e, kuna nad on Windowsi osa. Samuti on normaalne näha, et samas ettevõttes tehtud DLL-id, nagu see on protsess, mille puhul on tegemist Google'iga..
Siin on võimalik näha ka mõningaid „AVAST Software” poolt tehtud DLL-e. See näitab, et meie süsteemi Avast antimalware tarkvara süstib Chrome'i koodi nagu "Avast Script Blocking filter library".
Seal ei ole palju, mida saate teha, kui leiate süsteemis kõrvale koodi süstimise, eemaldades programmi süstimiskoodi, et vältida selle tekitamist. Näiteks kui Chrome jookseb regulaarselt kokku, võib-olla soovite näha, kas Chrome'is on programme, mis süstivad koodi ja eemaldavad need, et vältida Chrome'i protsesside rikkumist.
Kuidas toimib kodeerimine?
Koodisüstimine ei muuda teie plaadil olevat rakendust. Selle asemel ootab ta selle rakenduse käivitamist ja lisab sellesse töötamisprotsessi lisakoodi, et muuta selle toimimist.
Windows sisaldab mitmesuguseid rakenduste programmeerimisliideseid (API-sid), mida saab kasutada koodisüstimiseks. Protsess võib ennast siduda sihtprotsessiga, eraldada mälu, kirjutada sellele mälule DLL-i või muu koodi ning seejärel juhendada sihtprotsessi koodi käivitada. Windows ei takista teie arvutis olevate protsesside omavahelist häirimist.
Täiendava tehnilise teabe saamiseks vaadake seda blogipostitust, kus selgitatakse, kuidas saavad arendajad süstida DLL-e ja vaadata seda teist tüüpi Windowsi süsteemis.
Mõningatel juhtudel võib keegi vahetada ketta aluseks olevat koodi, näiteks asendades DLL-failiga kaasasoleva DLL-faili, millel on modifitseeritud mäng, et võimaldada petmist või piraatlust. See ei ole tehniliselt „koodisüstimine”. Koodi ei sisestata jooksvasse protsessi, kuid selle asemel pannakse programmi lööma teise sama nimega DLL-i.
Pildi krediit: Lukatme / Shutterstock.com.