
Uma técnica que mistura NTDLL unhooking e variantes de gate do hellsgate
Uma técnica de bypass de EDR em userland que permite alternar entre ntdll.dll não hookada e hookada à vontade. Como eu construí isso pode ser encontrado aqui.
Você pode simplesmente arrastar e soltar o arquivo .h e o arquivo .c no seu projeto, certifique-se de editar a definição do arquivo de cabeçalho para funções CRT que devem ser reimplementadas por você ou usando o que você quiser. Você também precisará editar a função switch_memory_protection dentro do arquivo .c, pois você precisa implementá-la por conta própria para que o projeto funcione corretamente.
Aqui está um trecho de como usar a 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!
}