Injekcia kódu sa tiež bežne nazýva injekcia DLL, pretože injekčný kód je často vo forme súboru DLL (dynamická linková knižnica). Aplikácie však môžu do procesu vkladať aj iné typy kódov, ktoré nie sú DLL.
Prečo sa používa kódovanie injekcie
Injekcia kódu sa používa na vykonanie všetkých druhov trikov a funkčnosti v systéme Windows. Zatiaľ čo používajú legitímne programy, používajú ho aj škodlivý softvér. Napríklad:
- Antivírusové programy často vkladajú kód do webových prehliadačov. Môžu ho použiť napríklad na monitorovanie sieťového prenosu a blokovanie nebezpečného webového obsahu.
- Škodlivé programy môžu do vášho webového prehliadača pridať kód, aby lepšie sledovali prehliadanie, ukradli chránené informácie, napríklad heslá a čísla kreditných kariet, a zmenili nastavenia prehliadača.
- Stardock's WindowBlinds, ktorý motivuje vašu pracovnú plochu, injektuje kód, ktorý upravuje spôsob nakreslenia okien.
- Stardock's Plots injektuje kód na zmenu spôsobu, akým funguje pracovná plocha systému Windows.
- AutoHotkey, ktorý vám umožňuje vytvárať skripty a priradiť im klávesové skratky pre celý systém, zavádza kód, aby ste to dosiahli.
- Ovládač grafických prvkov, ako napríklad NVIDIA, vkladá DLL na vykonávanie rôznych úloh týkajúcich sa grafiky.
- Niektoré programy vkladajú DLL a pridávajú do aplikácie ďalšie možnosti menu.
- Počítačové hry podvádzajúce nástroje často vkladajú kód do hier, aby upravili svoje správanie a získali nespravodlivú výhodu nad ostatnými hráčmi.
Je kódovanie injekcie zlé?
Táto technika sa neustále používa v širokej škále aplikácií na systéme Windows. Je to jediný skutočný spôsob, ako splniť rôzne úlohy. V porovnaní s modernou mobilnou platformou, ako je iOS alebo Android spoločnosti Android, je pracovná plocha systému Windows taká silná, pretože ponúka vývojárom takúto flexibilitu.
Samozrejme, so všetkou touto mocou prichádza nejaké nebezpečenstvo. Vstrekovanie kódu môže spôsobiť problémy a chyby v aplikáciách. Google hovorí, že používatelia systému Windows, ktorí majú kód vložený do svojho prehliadača Chrome, majú o 15% vyššiu pravdepodobnosť výskytu zhroucení prehliadača Chrome, čo je dôvod, prečo spoločnosť Google túto funkciu blokuje. Spoločnosť Microsoft berie na vedomie, že vďaka škodlivým aplikáciám môže byť injekcia kódu zneužitá na nastavenie prehliadača, čo je jeden z dôvodov, prečo je už na okraji zablokovaný.
Spoločnosť Microsoft dokonca poskytuje pokyny na kontrolu, či sú v programe Microsoft Outlook načítané súbory DLL tretej strany, pretože spôsobujú toľko zlyhaní programu Outlook.
Ako zamestnanec spoločnosti Microsoft uviedol na blog vývojára od roku 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.
Inými slovami, injekcia kódu je trochu špinavá. V ideálnom svete by existoval bezpečnejší spôsob, ako to dosiahnuť, čo nespôsobilo potenciálnu nestabilitu. Injekcia kódu je však dnes bežnou súčasťou aplikačnej platformy Windows. Stále sa to deje na pozadí počítača so systémom Windows. Môžete to nazvať nevyhnutným zlom.
Ako skontrolovať injekčné DLL
Môžete skontrolovať, či máte v systéme injekciu kódov pomocou výkonnej aplikácie Process Explorer spoločnosti Microsoft. Je to v podstate pokročilá verzia Správcu úloh, ktorá je vybavená ďalšími funkciami.
Stiahnite a spustite program Process Explorer, ak by ste to chceli urobiť. Kliknite na položku Zobraziť> Dolný panel Zobraziť> DLL alebo stlačte klávesy Ctrl + D.
Napríklad, je normálne vidieť rôzne DLL, ktoré "Microsoft Corporation" tu, pretože sú súčasťou systému Windows. Je tiež normálne vidieť DLL v tej istej spoločnosti ako daný proces - "Google Inc." v prípade prehliadača Chrome na obrazovke nižšie.
Môžeme tiež nájsť niekoľko dll, ktoré vytvoril "AVAST Software" tu. Znamená to, že softvér Avast antimalware v našom systéme vkladá do prehliadača Chrome kód ako "knižnica filtrov blokovania skriptov Avast".
Ako funguje kódovanie injekcie?
Injekcia kódu nezmení základnú aplikáciu na vašom disku. Namiesto toho čaká na spustenie tejto aplikácie a do tohto spusteného procesu vloží ďalší kód, aby zmenil spôsob fungovania.
Systém Windows obsahuje rôzne aplikačné programovacie rozhrania (API), ktoré možno použiť na kódovanie. Proces sa môže pridať k cieľovému procesu, prideliť pamäť, zapísať do tejto pamäte DLL alebo iný kód a potom inštruovať cieľový proces, aby spustil kód. Systém Windows nebráni tomu, aby sa procesy v počítači narušovali takýmto spôsobom.
Ak chcete získať ďalšie technické informácie, pozrite si tento príspevok v blogu, ktorý vysvetľuje, ako môžu vývojári vkladať DLL a tento pohľad na iné typy kódovania injekcie v systéme Windows.
V niektorých prípadoch môže niekto zmeniť základný kód na disku - napríklad nahradením súboru DLL, ktorý je dodávaný s počítačovou hrou s upravenou tak, aby umožnil podvádzanie alebo pirátstvo.To technicky nie je "kódovanie injekcie". Kód nie je vstreknutý do bežiaceho procesu, ale program je namiesto toho podvedený do načítania inej DLL s rovnakým názvom.