O AntIDBG é uma coleção de técnicas de depuração anti -depuração do Windows. As técnicas são categorizadas pelos métodos que usam para encontrar um depurador.
Quer ver essas coisas em ação? Confira a lista de reprodução no YouTube.
O AntIDBG é escrito em C e requer apenas um único arquivo de origem e cabeçalho. Quase todos esses métodos são projetados para não receber nenhuma entrada e não produzir saída. Eles pretendem ser verificações de depurador independentes que destacarão automaticamente os depuradores.
O AntIDBG foi projetado para ser legível para que o usuário possa aprender sobre as técnicas. Se você optar por usar esses métodos em seu próprio projeto, você se beneficiará bastante adicionando ofuscação sobre esses métodos. A ofuscação não é o objetivo deste projeto.
O Gauntlet é um aplicativo simples que executa cada verificação do AntIDBG após o outro. O objetivo é testar sua capacidade de ignorar os métodos anti-fuga e chegar ao final da luva enquanto estiver sob um depurador.
Quer dificultar a luva? Undefine show_debug_messages (definido por padrão em Antidbg.cpp). Esta opção produz uma caixa de mensagem quando você é pego com informações sobre o cheque que o levou.
Ajuda! X Método não parece funcionar.
Muitos verificações anti-debutação se concentram em casos de borda ímpares. Alguns exigem que você passe um passo, outros exigem que um depurador específico seja usado, outros exigem que você passe a exceção ao depurador, etc.
Todos os métodos no AntIDBG foram testados sob as condições que eles são projetados funcionam no Windows 10 de 64 bits. A maioria (se não todas) deve funcionar em todas as outras versões do Windows também.
Ajuda! Essa coisa não vai compilar!
O AntIDBG foi desenvolvido e testado usando o Microsoft Visual Studio 2019. Enquanto você estiver usando 2019, envie um problema com detalhes e eu ficaria feliz em ajudar.
Por que a montagem x86 está embutida enquanto as variantes x64 estão em um arquivo .asm?
A Microsoft achou que seria uma ótima idéia parar de permitir que os desenvolvedores escrevessem montagem embutida para x64. Não sei por que, mas a razão comum que vejo citada na Internet é que os desenvolvedores são péssimos em escrever montagem e compiladores são muito melhores. Embora eu não discordo disso, duvido que essa seja a verdadeira razão. Seja qual for o motivo, agora temos que pular aros para fazer algo mesmo remotamente semelhante. Agradecimentos enormes ao Lallouslab e ao Onipot por me orientarem através deste campo minado.
Eu tenho mais perguntas.
Eu ficaria feliz em respondê -los! Envie um problema do Github com suas perguntas e tentarei o meu melhor para ajudar o mais rápido possível.
Graças aos colaboradores e a todos que forneceram feedback no passado neste projeto.