
Iniettore DLL per Windows 10 tramite driver che utilizza VAD e nasconde il driver caricato
Driver DLL Injector Descrizione
Driver DLL Injector è un potente strumento che consente agli utenti di caricare i driver di loro scelta utilizzando il mapper preferito. Sfruttando le capacità di un caricatore di driver non firmato, come KDmapper, questo injector è stato creato e testato su processi Windows 10 2004 x64
Il driver aggancia una funzione sicura per Patch Guard, nota come xKdEnumerateDebuggingDevices, per la comunicazione con il nostro processo in usermode. Questo metodo è altamente rilevato dai popolari anti-cheat, quindi facciamo un passo avanti e intrappoliamo un thread in usermode nel kernel per comunicare ripristinando l'indirizzo della funzione originale, bypassando così i controlli di integrità delle funzioni.
Il driver fa quanto segue per nascondere le tracce lasciate:
Manipolazione VAD: il driver alloca strategicamente memoria dietro lo "stack del thread" sfruttando funzioni non documentate dei Virtual Address Descriptor (VAD) come MiInsertChange e MiAllocVad, che non sono molto conosciute. Una volta che il VAD è allocato e la DLL è stata caricata con successo, il driver rimuove il VAD dall'albero VAD.
Manipolazione PTE: per bypassare i controlli di NtQueryVirtualMemory, il driver manipola le Page Table Entries (PTE) per rendere eseguibili le pagine allocate dal VAD. Modificando le PTE, il driver garantisce che il VAD non venga aggiornato con il bit eseguibile (X) abilitato, aggirando potenziali restrizioni.
Pulizia di PiDDBCacheTable, MmUnloadedDrivers (Hash Bucket List).
A seconda del manual mapper che usi per il driver, dovrai tenere conto anche dei big pool.
Il processo usermode utilizza l'overlay di Discord per chiamare la funzione main della nostra DLL.
Il processo usermode fa quanto segue:
Per usare Driver DLL Injector, segui questi passaggi:
1. Scegli e installa un mapper compatibile, come KDmapper.
2. Compila o crea il progetto Driver DLL Injector.
3. Carica il driver usando il mapper selezionato
4. Avvia l'applicazione di test (con l'overlay di Discord abilitato)
5. Avvia l'applicazione usermode e attendi il messaggio Hello World.
Durante la creazione di questo progetto, ci sono stati diversi ostacoli lungo il percorso. Alcuni di essi erano:
/sdl-, /GS- e la libreria runtime su /MT ha risolto i miei problemi di crash.KMODE_EXCEPTION; risolto impostando la proprietà del driver /GS-.ModMap - per aver mostrato la manipolazione VAD
SkCrypt - per la crittografia
Stealthy Kernel Mode Injector - per la base del driver
Poseidon - per l'intrappolamento del thread usermode in kernel land
FACE INJECTOR - per lo shellcode