Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ReflectiveDLLInjection — L'iniezione DLL riflessiva è una tecnica di iniezione di librerie in cui il concetto di programmazione riflessiva viene impiegato per eseguire il caricamento di una libreria dalla memoria in un processo host. | Kitploit
Strumenti/GitHubGitHub/stephenfewer/reflectivedllinjection
Memory ForensicsExploitPost-ExploitRed TeamingSviluppo Payload
GitHubstephenfewer/reflectivedllinjection

ReflectiveDLLInjection

L'iniezione DLL riflessiva è una tecnica di iniezione di librerie in cui il concetto di programmazione riflessiva viene impiegato per eseguire il caricamento di una libreria dalla memoria in un processo host.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
3.3k81674 anni faRevisionato da Kitploit

Informazioni

L'iniezione di DLL riflessiva è una tecnica di iniezione di librerie in cui il concetto di programmazione riflessiva viene impiegato per eseguire il caricamento di una libreria dalla memoria in un processo host. In quanto tale, la libreria è responsabile del proprio caricamento implementando un caricatore minimale di file Portable Executable (PE). Può quindi gestire, con un'interazione minima con il sistema host e il processo, come si caricherà e interagirà con l'host.

L'iniezione funziona da Windows NT4 fino a Windows 8 incluso, su architetture x86, x64 e ARM dove applicabile.

Panoramica

Il processo di iniezione remota di una libreria in un processo è duplice. In primo luogo, la libreria che si desidera iniettare deve essere scritta nello spazio degli indirizzi del processo di destinazione (di seguito denominato processo host). In secondo luogo, la libreria deve essere caricata nel processo host in modo tale che le aspettative di runtime della libreria siano soddisfatte, come la risoluzione delle importazioni o il suo rilocamento in una posizione adeguata in memoria.

Supponendo di avere l'esecuzione del codice nel processo host e che la libreria da iniettare sia stata scritta in una posizione arbitraria della memoria del processo host, l'iniezione di DLL riflessiva funziona come segue.

  • L'esecuzione viene passata, tramite CreateRemoteThread() o un minuscolo shellcode di bootstrap, alla funzione ReflectiveLoader della libreria, che è una funzione esportata presente nella tabella delle esportazioni della libreria.
  • Poiché l'immagine della libreria esiste attualmente in una posizione arbitraria in memoria, ReflectiveLoader calcolerà prima la posizione corrente della propria immagine in memoria per poter analizzare le proprie intestazioni per un uso successivo.
  • ReflectiveLoader analizzerà quindi la tabella delle esportazioni di kernel32.dll del processo host per calcolare gli indirizzi di tre funzioni richieste dal caricatore, ovvero LoadLibraryA, GetProcAddress e VirtualAlloc.
  • ReflectiveLoader allocherà ora una regione continua di memoria in cui procederà a caricare la propria immagine. La posizione non è importante poiché il caricatore rilocherà correttamente l'immagine in seguito.
  • Le intestazioni e le sezioni della libreria vengono caricate nelle loro nuove posizioni in memoria.
  • ReflectiveLoader elaborerà quindi la copia appena caricata della tabella delle importazioni della propria immagine, caricando eventuali librerie aggiuntive e risolvendo i rispettivi indirizzi delle funzioni importate.
  • ReflectiveLoader elaborerà quindi la copia appena caricata della tabella di rilocazione della propria immagine.
  • ReflectiveLoader chiamerà quindi la funzione del punto di ingresso della propria immagine appena caricata, DllMain con DLL_PROCESS_ATTACH. La libreria è stata ora caricata con successo in memoria.
  • Infine, ReflectiveLoader restituirà l'esecuzione allo shellcode di bootstrap iniziale che lo ha chiamato, oppure, se è stato chiamato tramite CreateRemoteThread, il thread terminerà.

Compilazione

Aprire il file 'rdi.sln' in Visual Studio C++ e compilare la soluzione in modalità Release per generare inject.exe e reflective_dll.dll

Utilizzo

Per testare, utilizzare inject.exe per iniettare reflective_dll.dll in un processo host tramite un ID di processo, ad esempio:

inject.exe 1234

Licenza

Concesso in licenza secondo una licenza BSD a 3 clausole; si prega di consultare LICENSE.txt per i dettagli.

Scarica lo strumento