Kodu injekciju parasti dēvē par DLL injekciju, jo ievadītais kods bieži ir DLL (dinamiskās saišu bibliotēkas) faila formā. Tomēr lietojumprogrammas var arī injicēt citus kodu tipus, kas nav DLL, procesā.
Kādu kodu injicē
Koda injekcija tiek izmantota, lai veiktu dažādus trikus un funkcionalitāti Windows. Lai gan likumīgās programmas to izmanto, to izmanto arī ļaunprātīga programmatūra. Piemēram:
- Antivīrusu programmas bieži iespiež kodu tīmekļa pārlūkprogrammās. Viņi to var izmantot, lai uzraudzītu tīkla trafiku un bloķētu bīstamu tīmekļa saturu, piemēram.
- Ļaunprātīgas programmas var pievienot kodu jūsu tīmekļa pārlūkprogrammai, lai labāk novērotu pārlūkošanu, nozagtu aizsargātu informāciju, piemēram, paroles un kredītkartes numurus, kā arī mainītu pārlūkprogrammas iestatījumus.
- Stardock's WindowBlinds, kuras tēmas jūsu darbvirsmā, ievieš kodu, lai modificētu logu izveidi.
- Stardock's Fences ievieš kodu, lai mainītu Windows darbvirsmas darbību.
- AutoHotkey, kas ļauj jums izveidot skriptus un piešķirt sistēmai paredzētus karstos taustiņus, tiek ievadīts kods, lai to paveiktu.
- Grafikas draiveris, piemēram, NVIDIA injicē DLL, lai veiktu dažādus ar grafiku saistītus uzdevumus.
- Dažas programmas injicē DLL, lai programmai pievienotu papildu izvēlnes iespējas.
- Datorspēļu krāpšanās rīki bieži injicē spēles kodu, lai mainītu savu uzvedību un iegūtu netaisnīgas priekšrocības salīdzinājumā ar citiem spēlētājiem.
Vai kodeksa injicēšana ir slikta?
Šo paņēmienu nepārtraukti lieto daudzos lietojumprogrammas Windows. Tas ir vienīgais reālais veids, kā izpildīt dažādus uzdevumus. Salīdzinājumā ar mūsdienīgu mobilo platformu, piemēram, Apple iOS vai Google Android, Windows darbvirsma ir tik spēcīga, jo tā piedāvā izstrādātājiem tādu elastīgumu.
Protams, ar visu šo varu nāk daži briesmas. Koda ievadīšana var radīt problēmas un kļūdas lietojumprogrammās. Google saka, ka Windows lietotājiem, kuriem ievadīts kods pārlūkprogrammā Chrome pārlūkprogrammā, ir par 15% lielāka iespēja, ka viņiem rodas avārijas, tādēļ Google strādā pie tā bloķēšanas. Microsoft norāda, ka ļaunprātīgas lietojumprogrammas var izmantot kodu ievadīšanu, lai ietekmētu pārlūkprogrammas iestatījumus, kas ir viens no iemesliem, kādēļ tas jau ir bloķēts programmā Edge.
Microsoft pat sniedz norādījumus, lai pārbaudītu, vai trešās puses DLL tiek ielādētas programmā Microsoft Outlook, jo tās rada tik daudz Outlook avārijas.
Kā Microsoft darbinieks to ievietoja izstrādātāja emuārā kopš 2004. gada:
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.
Citiem vārdiem sakot, koda injekcija ir sava veida netīrs banalizēt. Ideālā pasaulē būtu drošāks veids, kā to panākt, neradot potenciālu nestabilitāti. Tomēr koda injekcija šodien ir tikai daļa no Windows lietojumprogrammu platformas. Tas pastāvīgi notiek jūsu Windows datora fonā. Jūs varētu sauc to par nepieciešamo ļaunu.
Kā pārbaudīt injekcijas DLL
Jūs varat pārbaudīt koda injekciju savā sistēmā ar Microsoft spēcīgo Process Explorer lietojumprogrammu. Tas pārsvarā ir uzlabotā Task Manager versija, kas ir papildināta ar papildu funkcijām.
Lejupielādējiet un palaidiet Procesora pārlūku, ja vēlaties to izdarīt. Noklikšķiniet uz Skatīt> Apakšas paneļa skats> DLL vai nospiediet Ctrl + D.
Piemēram, ir normāli redzēt dažādas "Microsoft Corporation" izveidotās DLL, jo tās ir daļa no sistēmas Windows. Normāli ir redzēt arī to pašu uzņēmumu radītās DLL, kuras ir saistītas ar attiecīgo procesu - "Google Inc" - pārlūka Chrome gadījumā tālāk redzamajā ekrānuzņēmumā.
Mēs varam arī novērot dažas AVAST programmatūras radītās DLL šeit. Tas norāda, ka mūsu sistēmā Avast antimalware programmatūra pārlūkā Chrome injicē kodu, piemēram, "Avast Script Blocking filter library".
Kā darbojas kodeksa injicēšana?
Kodu injekcija negroza jūsu diskā esošo lietojumprogrammu. Tā vietā tā gaida, ka šis lietojumprogramma palaiž, un tā ievieš papildu kodu šajā darbības procesā, lai mainītu tā darbību.
Windows ietver dažādas lietojumprogrammu saskarnes (API), kuras var izmantot koda injekcijai. Process var pievienot sevi mērķa procesam, piešķirt atmiņu, ierakstīt DLL vai citu kodu šai atmiņā un pēc tam norādīt mērķa procesu, lai izpildītu kodu. Windows nepieļauj, ka jūsu datorā notiekošie procesi traucē viens otru, piemēram, šo.
Lai saņemtu plašāku tehnisko informāciju, izlasiet šo emuāra ziņu, kurā paskaidrots, kā izstrādātāji var injicēt DLL, un tas ļaus apskatīt citu kodu ievadīšanu sistēmā Windows.
Atsevišķos gadījumos kāds var mainīt pamata kodu uz diska, piemēram, aizstājot DLL failu, kas nāk ar PC spēli ar modificētu, lai iespējotu krāpšanos vai pirātismu.Šis tehniski nav "koda injekcija". Šis kods netiek ievadīts ekspluatācijas procesā, bet tā vietā tiek sagrābta programma, iekraujot citu DLL ar tādu pašu nosaukumu.