
Una tecnica che combina l'unhooking di NTDLL e le varianti del gate di Hellsgate
Una tecnica di bypass EDR in userland che ti permette di passare a piacimento tra ntdll.dll unhooked e hooked. Come l'ho costruita è disponibile qui.
Puoi semplicemente trascinare e rilasciare il file .h e il file .c nel tuo progetto, assicurati di modificare la definizione nel file header per le funzioni CRT che dovrebbero essere reimplementate da te o usando ciò che preferisci. Dovrai anche modificare la funzione switch_memory_protection all'interno del file .c poiché devi implementarla tu stesso affinché il progetto funzioni correttamente.
Ecco uno snippet su come usare la libreria:
struct hook_cache *cache = 0;
cache = ntdll_reconstruction_init();
if (cache == 0)
// Throw Error!
while (1) {
// Do whatever
cache = ntdll_reconstruction_flip(cache); // Back to hooked stub
if (cache == 0)
// Throw Error!
Sleep(1234);
cache = ntdll_reconstruction_flip(cache); // Back to clean stub
if (cache == 0)
// Throw Error!
}