Che cos'è il codice di iniezione su Windows?

Sommario:

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

Video: Che cos'è il codice di iniezione su Windows?

Video: Che cos'è il codice di iniezione su Windows?
Video: 18 TRUCCHI NASCOSTI + 1 app SEGRETA per iPhone che non conoscevi - YouTube 2024, Aprile
Anonim
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 per il bene o per il male, ma in entrambi i casi può causare problemi.
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 per il bene o per il male, ma in entrambi i casi può causare problemi.

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

Che codice di iniezione è usato per

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

  • I programmi antivirus spesso iniettano codice nei browser web. Possono usarlo per monitorare il traffico di rete e bloccare il contenuto Web pericoloso, per esempio.
  • I programmi dannosi potrebbero aggiungere codice al browser Web per monitorare meglio la tua navigazione, rubare informazioni protette come password e numeri di carte di credito e modificare le impostazioni del browser.
  • Stardock's WindowBlinds, che temi il desktop, inietta il codice per modificare il modo in cui vengono disegnate le finestre.
  • Stardsock's Fences inietta il codice per cambiare il modo in cui funziona il desktop di Windows.
  • AutoHotkey, che ti consente di creare script e assegnare tasti di scelta rapida a tutto il sistema, inietta il codice per ottenere ciò.
  • I driver grafici come NVIDIA iniettano DLL per eseguire una serie di attività relative alla grafica.
  • Alcuni programmi iniettano DLL per aggiungere opzioni di menu aggiuntive a un'applicazione.
  • Gli strumenti di gioco del PC spesso inseriscono il codice nei giochi per modificare il loro comportamento e ottenere un vantaggio ingiusto sugli altri giocatori.

Il codice di iniezione è sbagliato?

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

Certamente, con tutto quel potere arriva qualche pericolo. L'iniezione di codice può causare problemi e bug nelle applicazioni. Google afferma che gli utenti Windows che hanno inserito codice nel loro browser Chrome hanno il 15% in più di probabilità di subire arresti anomali di Chrome, motivo per cui Google sta lavorando per bloccarlo. Microsoft nota che l'iniezione di codice potrebbe essere utilizzata da applicazioni malevoli per manomettere le impostazioni del browser, il che è uno dei motivi per cui è già stato bloccato in Edge.

Microsoft fornisce anche istruzioni per verificare se DLL di terze parti vengono caricate in Microsoft Outlook, in quanto causano così tanti arresti anomali di Outlook.

Come un dipendente Microsoft ha inserito in un blog degli sviluppatori dal 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 altre parole, l'iniezione di codice è una specie di trucco sporco. In un mondo ideale, ci sarebbe un modo più sicuro per realizzare ciò che non causasse una potenziale instabilità. Tuttavia, l'iniezione di codice è solo una parte normale della piattaforma applicativa Windows oggi. Sta accadendo costantemente in background sul tuo PC Windows. Potresti chiamarlo un male necessario.

Come controllare le DLL iniettate

Puoi verificare l'iniezione di codice sul tuo sistema con la potente applicazione Process Explorer di Microsoft. È fondamentalmente una versione avanzata del Task Manager pieno di funzionalità aggiuntive.

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

Selezionare un processo nel pannello superiore e cercare nel file in basso per vedere le DLL che sono state caricate. La colonna "Nome azienda" fornisce un modo utile per filtrare questo elenco.
Selezionare un processo nel pannello superiore e cercare nel file in basso per vedere le DLL che sono state caricate. La colonna "Nome azienda" fornisce un modo utile per filtrare questo elenco.

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

Possiamo anche individuare alcune DLL create da "AVAST Software" qui. Questo indica che il software antimalware Avast sul nostro sistema sta iniettando un codice come "Libreria di filtri Avast Script Blocking" in Chrome.

Non c'è molto che si possa fare se si trova l'iniezione di codice nel proprio sistema, oltre a disinstallare il codice di iniezione del programma per evitare che causi problemi. Ad esempio, se Chrome si arresta in modo anomalo con regolarità, potresti voler vedere se ci sono programmi che iniettano codice in Chrome e disinstallarli per impedirne la manomissione dei processi di Chrome.
Non c'è molto che si possa fare se si trova l'iniezione di codice nel proprio sistema, oltre a disinstallare il codice di iniezione del programma per evitare che causi problemi. Ad esempio, se Chrome si arresta in modo anomalo con regolarità, potresti voler vedere se ci sono programmi che iniettano codice in Chrome e disinstallarli per impedirne la manomissione dei processi di Chrome.

Come funziona l'iniezione di codice?

L'iniezione di codice non modifica l'applicazione sottostante sul disco. Invece, attende che l'applicazione venga eseguita e inietta codice aggiuntivo in quel processo in esecuzione per cambiare il modo in cui funziona.

Windows include una varietà di API (Application Programming Interface) che possono essere utilizzate per l'iniezione di codice. Un processo può collegarsi a un processo di destinazione, allocare memoria, scrivere una DLL o altro codice in quella memoria e quindi istruire il processo di destinazione per eseguire il codice. Windows non impedisce ai processi sul tuo computer di interferire tra loro in questo modo.

Per ulteriori informazioni tecniche, consulta questo post sul blog che spiega come gli sviluppatori possono iniettare DLL e questo aspetto di altri tipi di codice di iniezione su Windows.

In alcuni casi, qualcuno potrebbe cambiare il codice sottostante su disco, ad esempio sostituendo un file DLL fornito con un gioco per PC con uno modificato per abilitare la frode o la pirateria.Questo tecnicamente non è "iniezione di codice". Il codice non viene iniettato in un processo in esecuzione, ma il programma viene invece ingannato nel caricare una DLL diversa con lo stesso nome.

Consigliato: