
Une technique qui mélange le unhooking de NTDLL et les variantes de gate de Hell's Gate
Une technique de contournement d'EDR en espace utilisateur qui vous permet de basculer à volonté entre une ntdll.dll non hookée et hookée. La façon dont j'ai construit cela est disponible ici.
Vous pouvez simplement glisser-déposer les fichiers .h et .c dans votre projet, assurez-vous d' éditer la définition du fichier d'en-tête pour les fonctions CRT qui doivent soit être réimplémentées par vous, soit en utilisant ce que vous voulez. Vous devrez également éditer la fonction switch_memory_protection à l'intérieur du fichier .c puisque vous devez l'implémenter vous-même pour que le projet fonctionne correctement.
Voici un extrait montrant comment utiliser la lib :
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!
}