Ce este Code Injection pe Windows?

Rezolvare problema (Fix IT)

Situatie

Code Injection 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.

Code Injection este, de asemenea, numită în mod obișnuit injectare DLL, deoarece codul injectat este adesea sub forma unui fișier DLL (dynamic link library). Cu toate acestea, aplicațiile ar putea injecta și alte tipuri de cod care nu sunt DLL-uri într-un proces.


Simptome

Pentru ce este folosita Code Injection

Code injection 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:

Programele antivirus adesea injectează codul în browserele web. Îl pot folosi pentru a monitoriza traficul în rețea și pentru a bloca conținutul web periculos.

Programele rău intenționate ar putea adăuga coduri în browserul dvs. web pentru a urmări mai bine navigarea, pentru a fura informații protejate precum parole și numere de cărți de credit și pentru a schimba setările browserului.

Stardock’s WindowBlinds, modifica temele desktopului, injectează codul pentru a modifica modul în care sunt desenate ferestrele.

Stardock’s Fences injecteaza codul pentru a schimba modul în care funcționează desktopul Windows.

AutoHotkey, 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.

Tool-urile de trisat inserează codul în jocurile PC pentru a-și modifica comportamentul și pentru a câștiga un avantaj nedrept asupra celorlalți jucători.

Code Injection este rea?

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 puternic,dacă oferă acest tip de flexibilitate dezvoltatorilor.
Desigur, cu toată puterea asta vin si pericole. Code Injection 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 chrash-uri 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 acestea provoacă crash-uri in Outlook.
Un angajat Microsoft a pus aceasta fraza intr-un blog de dezvoltator in 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 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, 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.

Solutie

Cum se verifică DLL-urile injectate?

Puteți verifica introducerea de coduri pe sistemul dvs. cu aplicația Microsoft Process Explorer. Este în esență o versiune avansată a managerului de activități (Task Manager) î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 View> Lower Pane View> 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 “Company Name” 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 “Avast Script Blocking filter library” în Chrome.

Nu puteți face prea multe lucruri dacă găsiți injecție de cod în sistemul dvs. In afară de dezinstalarea programului de injectare 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.

Cum functioneaza Code Injection?

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 unele cu celelalte.
Î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.

Tip solutie

Permanent

Voteaza

(20 din 44 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?