Injecția de cod este comună pe Windows. Aplicațiile "injectează" bucăți de cod propriu într-un alt proces de funcționare 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 injectare DLL, deoarece codul injectat este adesea sub forma unui fișier DLL (bibliotecă dinamic link). Cu toate acestea, aplicațiile ar putea injecta și alte tipuri de cod care nu sunt DLL-uri într-un proces.
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ă, acestea sunt, de asemenea, folosite de malware. De exemplu:
Această tehnică este folosită î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ă, cum ar fi iOS-ul Apple sau Android-ul Google, desktop-ul Windows este atât de puternic, deoarece dacă oferă acest tip de flexibilitate dezvoltatorilor.
Desigur, cu toată puterea asta 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 a fost deja blocat pe Edge.
Microsoft oferă chiar și instrucțiuni pentru a verifica dacă DLL-urile terță parte sunt încărcate în Microsoft Outlook, deoarece provoacă atâtea accidente Outlook.
Ca un angajat Microsoft a pus-o într-un blog dezvoltator din 2004:
Injecția DLL nu este niciodată sigură. Vorbești despre codarea unui proces care nu a fost niciodată proiectat, construit sau testat de autorul procesului și să coopereze sau să creeze 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 provoacă instabilitate potențială. Cu toate acestea, injectarea de coduri 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.
Puteți verifica introducerea 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 caracteristici 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 injectează codul ca "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, în cazul în care 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.
Injecția de cod nu modifică aplicația de bază de pe disc. În schimb, așteaptă ca această aplicație să ruleze și injectează un cod suplimentar în acel proces care rulează 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 în 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 acest post pe blog explicând modul în care dezvoltatorii pot injecta DLL-uri și acest aspect la alte tipuri de injectare 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 nu este tehnic "injecție de cod". Codul nu este injectat într-un proces în derulare, dar programul este în schimb înșelat în încărcarea unui DLL diferit cu același nume.
Credit de imagine: Lukatme / Shutterstock.com.