Che cos'è l'iniezione di codice su Windows?



L'iniezione di codice è comune su Windows. Le applicazioni iniettano parti del proprio codice in un altro processo in esecuzione per modificarne il comportamento. Questa tecnica può essere usata nel bene o nel male, ma in entrambi i casi può causare problemi.

L'iniezione di codice è anche comunemente chiamata iniezione DLL perché il codice iniettato è spesso sotto forma di a File DLL (libreria di collegamento dinamico) . Tuttavia, le applicazioni potrebbero anche inserire altri tipi di codice che non sono DLL in un processo.





A cosa serve l'iniezione di codice

L'iniezione di codice viene utilizzata per eseguire tutti i tipi di trucchi e funzionalità su Windows. Sebbene i programmi legittimi lo utilizzino, viene utilizzato anche dal malware. Per esempio:

  • I programmi antivirus spesso iniettano codice nei browser web. Possono usarlo per monitorare il traffico di rete e bloccare contenuti Web pericolosi, ad esempio.
  • I programmi dannosi potrebbero aggiungere codice al tuo browser web per monitorare meglio la tua navigazione, rubare informazioni protette come password e numeri di carta di credito e modificare le impostazioni del browser.
  • WindowBlinds di Stardock, che crea un tema sul desktop, inserisce il codice in modificare il modo in cui vengono disegnate le finestre .
  • Stardock's Fences inietta il codice a cambia il modo in cui funziona il desktop di Windows .
  • AutoHotkey, che ti consente creare script e assegnare loro tasti di scelta rapida a livello di sistema , inietta il codice per eseguire questa operazione.
  • I driver grafici come le DLL di iniezione di NVIDIA per eseguire una serie di attività relative alla grafica.
  • Alcuni programmi iniettano DLL per aggiungere ulteriori opzioni di menu a un'applicazione.
  • Gli strumenti per imbrogliare i giochi per PC spesso iniettano codice nei giochi per modificarne il comportamento e ottenere un vantaggio sleale sugli altri giocatori.

L'iniezione di codice è dannosa?

Questa tecnica viene utilizzata costantemente da un'ampia varietà di applicazioni su Windows. È l'unico vero modo per eseguire una serie di compiti. Rispetto a una moderna piattaforma mobile come iOS di Apple o Android di Google, il desktop di Windows è così potente perché offre questo tipo di flessibilità agli sviluppatori.



Naturalmente, con tutto quel potere c'è del pericolo. L'iniezione di codice può causare problemi e bug nelle applicazioni. Google afferma che gli utenti Windows a cui è stato iniettato codice nel browser Chrome hanno il 15% in più di probabilità di subire arresti anomali di Chrome, motivo per cui Google sta lavorando per bloccarlo. Microsoft osserva che l'iniezione di codice potrebbe essere utilizzata da applicazioni dannose per manomettere le impostazioni del browser, motivo per cui è già bloccato in Edge.

Annuncio pubblicitario

Microsoft fornisce anche Istruzioni per verificare se le DLL di terze parti sono caricate in Microsoft Outlook, poiché causano così tanti arresti anomali di Outlook.

Come ha detto un dipendente Microsoft in un blog degli sviluppatori dal 2004:



L'iniezione di DLL non è mai sicura. Stai parlando di spruzzare codice in un processo che non è mai stato progettato, costruito o testato dall'autore del processo e di cooptare o creare un thread per eseguire quel codice. Corri il rischio di creare problemi di tempistica, sincronizzazione o risorse che prima non c'erano o esacerbare problemi che c'erano.

In altre parole, l'iniezione di codice è una specie di hack sporco. In un mondo ideale, ci sarebbe un modo più sicuro per raggiungere questo obiettivo che non causasse potenziale instabilità. Tuttavia, l'iniezione di codice è solo una parte normale della piattaforma applicativa Windows di oggi. Succede costantemente in background sul tuo PC Windows. Potresti chiamarlo un male necessario.

Come verificare la presenza di DLL iniettate

Puoi controllare l'iniezione di codice sul tuo sistema con il potente di Microsoft Esplora processi applicazione. È fondamentalmente una versione avanzata del Task Manager ricca di funzionalità aggiuntive.

Scarica ed esegui Process Explorer se desideri farlo. Fare clic su Visualizza > Visualizzazione riquadro inferiore > DLL o premere Ctrl+D.

Selezionare un processo nel riquadro superiore e guardare nel riquadro inferiore per vedere le DLL caricate. La colonna Nome azienda fornisce un modo utile per filtrare questo elenco.

Annuncio pubblicitario

Ad esempio, è normale vedere una varietà di DLL realizzate da Microsoft Corporation qui, poiché fanno parte di Windows. È anche normale vedere DLL realizzate dalla stessa azienda del processo in questione, Google Inc. nel caso di Chrome nello screenshot qui sotto.

Possiamo anche individuare alcune DLL create da AVAST Software qui. Ciò indica che il software antimalware Avast sul nostro sistema sta inserendo codice come la libreria di filtri Avast Script Blocking in Chrome.

Non c'è molto che puoi fare se trovi l'iniezione di codice sul tuo sistema, a parte disinstallare il programma che inietta il codice per evitare che causi problemi. Ad esempio, se Chrome si blocca regolarmente, potresti voler vedere se ci sono programmi che iniettano codice in Chrome e disinstallarli per evitare che manomettano i processi di Chrome.

Come funziona l'iniezione di codice?

L'iniezione di codice non modifica l'applicazione sottostante sul disco. Invece, attende l'esecuzione dell'applicazione e inserisce codice aggiuntivo nel processo in esecuzione per modificare il suo funzionamento.

Windows include una varietà di interfacce di programmazione delle applicazioni (API) che può essere utilizzato per l'iniezione di codice. Un processo può collegarsi a un processo di destinazione, allocare memoria, scrivere una DLL o un altro codice in quella memoria e quindi indicare al processo di destinazione di eseguire il codice. Windows non impedisce ai processi sul tuo computer di interferire tra loro in questo modo.

Per ulteriori informazioni tecniche, dai un'occhiata a questo post sul blog che spiega come gli sviluppatori possono iniettare DLL e questo guarda altri tipi di iniezione di codice su Windows .

Annuncio pubblicitario

In alcuni casi, qualcuno potrebbe modificare il codice sottostante su disco, ad esempio sostituendo un file DLL fornito con un gioco per PC con uno modificato per consentire l'imbroglio o la pirateria. Questo tecnicamente non è l'iniezione di codice. Il codice non viene iniettato in un processo in esecuzione, ma il programma viene invece indotto a caricare una DLL diversa con lo stesso nome.

Credito immagine: Lukatme /Shutterstock.com.

LEGGI SUCCESSIVO Foto del profilo di Chris Hoffman Chris Hoffman
Chris Hoffman è caporedattore di How-To Geek. Ha scritto di tecnologia per oltre un decennio ed è stato editorialista di PCWorld per due anni. Chris ha scritto per il New York Times, è stato intervistato come esperto di tecnologia su stazioni TV come la NBC 6 di Miami e ha avuto il suo lavoro coperto da organi di informazione come la BBC. Dal 2011, Chris ha scritto oltre 2.000 articoli che sono stati letti quasi un miliardo di volte --- e questo è solo qui su How-To Geek.
Leggi la biografia completa

Articoli Interessanti