Pagina principala » HOWTO » Ce este codul de injectare pe Windows?

    Ce este codul de injectare pe Windows?

    Injecția de cod este comună în Windows. Aplicațiile "injectează" bucăți din codul propriu într-un alt proces care rulează pentru a-și modifica comportamentul. Această tehnică poate fi folosită pentru bine sau rău, dar oricum poate provoca probleme.

    Injecția de cod este, de asemenea, numită în mod obișnuit injecție DLL deoarece codul injectat este adesea sub forma unui fișier DLL (bibliotecă dinamică de legătură). Cu toate acestea, aplicațiile ar putea injecta și alte tipuri de cod care nu sunt DLL-uri într-un proces.

    Ce injectare de cod este folosit pentru

    Injecția de cod este folosită pentru a realiza tot felul de trucuri și funcționalități pe Windows. În timp ce programele legitime le utilizează, sunt utilizate și de programele malware. De exemplu:

    • Programele antivirus adesea injectează codul în browserele web. Îl pot folosi pentru a monitoriza traficul în rețea și, de exemplu, pentru a bloca conținutul web periculos.
    • Programele rău intenționate ar putea adăuga cod la browserul dvs. web pentru a urmări mai bine navigarea dvs., pentru a fura informații protejate precum parolele și numerele cărților de credit și pentru a schimba setările browserului dvs..
    • Stardock's WindowBlinds, care temele desktopului, injectează codul pentru a modifica modul în care sunt desenate ferestrele.
    • Plăcile Stardock introduc codul pentru a schimba modul în care funcționează desktopul Windows.
    • AutoHotkey, care vă permite să creați scripturi și să le atribuiți fișiere rapide la nivel de sistem, injectează codul pentru a realiza acest lucru.
    • Driverele de grafică, precum cele de la NVIDIA, injectează DLL-uri pentru a realiza o varietate de sarcini legate de grafică.
    • Unele programe injectează DLL-uri pentru a adăuga opțiuni de meniu suplimentare la o aplicație.
    • Jocurile de înșelătorie de pe PC-uri inserează codul în jocuri pentru a-și modifica comportamentul și a obține un avantaj nedrept asupra celorlalți jucători.

    Injecția de cod este incorectă?

    Această tehnică este utilizată în mod constant de o mare varietate de aplicații pe Windows. Este singura cale reală de a realiza o varietate de sarcini. Comparativ cu o platformă mobilă modernă precum iOS-ul Apple sau Google Android, desktop-ul Windows este atât de puternic, deoarece dacă oferă acest tip de flexibilitate dezvoltatorilor.

    Desigur, cu toată această putere vine un pericol. Injecția de cod poate cauza probleme și erori în aplicații. Google afirmă că utilizatorii Windows care au codul injectat în browserul Chrome au cu 15% mai multe șanse de a experimenta accidentele Chrome, motiv pentru care Google încearcă să blocheze acest lucru. Microsoft notează că injectarea de coduri ar putea fi folosită de aplicații rău intenționate pentru a manipula setările browserului, acesta fiind unul din motivele pentru care este deja blocat în Edge.

    Microsoft oferă chiar și instrucțiuni pentru a verifica dacă DLL-urile terță parte sunt încărcate în Microsoft Outlook, deoarece provoacă atât de multe accidente Outlook.

    În calitate de angajat al Microsoft, a pus-o într-un blog dezvoltator din 2004:

    Injecția DLL nu este niciodată sigură. Vorbești despre spargerea codului într-un proces care nu a fost niciodată proiectat, construit sau testat de autorul procesului și cooptând sau creând un fir pentru a rula acel cod. Există riscul de a crea probleme de sincronizare, de sincronizare sau de resurse care nu au existat înainte sau de a exacerba problemele care au existat acolo.

    Cu alte cuvinte, injecția de cod este un fel de hack murdar. Într-o lume ideală, ar exista o modalitate mai sigură de a realiza acest lucru care nu a provocat o potențială instabilitate. Cu toate acestea, injecția de cod este doar o parte normală a platformei de aplicații Windows azi. Se întâmplă în mod constant în fundal pe PC-ul Windows. S-ar putea numi un rău necesar.

    Cum se verifică DLL-urile injectate

    Aveți posibilitatea să verificați pentru injectarea de coduri pe sistemul dvs. cu aplicația Microsoft Process Explorer puternică. Este în esență o versiune avansată a Managerului de activități încărcat cu funcții suplimentare.

    Descărcați și rulați Process Explorer dacă doriți să faceți acest lucru. Faceți clic pe Vizualizare> Vizualizare panou inferior> DLL-uri sau apăsați pe Ctrl + D.

    Selectați un proces în panoul de sus și căutați în panoul inferior pentru a vedea DLL-urile încărcate. Coloana "Denumire companie" oferă o modalitate utilă de a filtra această listă.

    De exemplu, este normal să vedeți aici o varietate de DLL-uri făcute de "Microsoft Corporation", deoarece fac parte din Windows. De asemenea, este normal să vedeți DLL-uri făcute de aceeași companie ca și procesul în cauză - "Google Inc." în cazul Chrome în imaginea de mai jos.

    De asemenea, putem vedea câteva DLL-uri realizate de "AVAST Software" aici. Acest lucru indică faptul că software-ul Avast antimalware din sistemul nostru este codul de injectare precum "biblioteca filtrelor Avast Script Blocking" în Chrome.

    Nu puteți face prea multe lucruri dacă găsiți injecție de cod în sistemul dvs. - în afară de dezinstalarea programului de injectare a programului, pentru a preveni apariția unor probleme. De exemplu, dacă Chrome se blochează în mod regulat, vă recomandăm să vedeți dacă există programe de injectare a codului în Chrome și să le dezinstalați pentru a le împiedica să manipuleze procesele Chrome.

    Cum funcționează codul de injecție??

    Injecția de cod nu modifică aplicația de bază pe disc. În schimb, așteaptă ca respectiva aplicație să ruleze și injectează un cod suplimentar în procesul respectiv, pentru a schimba modul în care funcționează.

    Windows include o varietate de interfețe de programare a aplicațiilor (API) care pot fi utilizate pentru injectarea de coduri. Un proces se poate atașa la un proces țintă, poate aloca memorie, poate scrie un DLL sau alt cod la acea memorie și apoi instruiește procesul țintă pentru a executa codul. Windows nu împiedică procesele de pe computer să interfereze una cu cealaltă.

    Pentru mai multe informații tehnice, consultați această postare pe blog explicând modul în care dezvoltatorii pot injecta DLL-uri și acest aspect la alte tipuri de injecție de coduri pe Windows.

    În unele cazuri, cineva ar putea schimba codul de bază pe disc - de exemplu, înlocuind un fișier DLL care vine cu un joc PC cu unul modificat pentru a permite înșelăciune sau piraterie. Acest lucru din punct de vedere tehnic nu este "injectarea codului". Codul nu este injectat într-un proces care rulează, dar programul este în schimb înșelat în încărcarea unui DLL diferit cu același nume.

    Credit de imagine: Lukatme / Shutterstock.com.