AntidBG es una colección de técnicas de depuración de Windows. Las técnicas se clasifican por los métodos que usan para encontrar un depurador.
¿Quieres ver estas cosas en acción? Mira la lista de reproducción en YouTube.
AntidBG está escrito en C y requiere solo un archivo de origen y encabezado. Casi todos estos métodos están diseñados para no tomar entrada y no producir salida. Su objetivo es ser controles de depuradores autónomos que se separarán automáticamente.
AntidBG está diseñado para ser legible para que el usuario pueda aprender sobre las técnicas. Si elige usar estos métodos en su propio proyecto, se beneficiará enormemente agregando ofuscación además de estos métodos. La ofuscación no es el objetivo de este proyecto.
El Gauntlet es una aplicación simple que ejecuta cada verificación antidbg una tras otra. Su propósito es probar su capacidad para evitar los métodos anti-fondos y llegar al final del guante mientras se ejecuta bajo un depurador.
¿Quieres que el guante sea más difícil ? Undefine show_debug_messages (definido por defecto en antidbg.cpp). Esta opción produce un cuadro de mensaje cuando te atrapan con información sobre la verificación que te recibió.
¡Ayuda! El método X no parece funcionar.
Muchos controles anti-fondos se centran en casos de borde impar. Algunos requieren que pase un solo paso, otros requieren que se use un depurador específico, otros requieren que pase la excepción al depurador, etc.
Todos los métodos en AntidBG se han probado en las condiciones que están diseñadas funcionan en Windows 10 de 64 bits. La mayoría (si no todas) también debería funcionar en todas las demás versiones de Windows.
¡Ayuda! ¡Esta cosa no se compilará!
AntidBG fue desarrollado y probado con Microsoft Visual Studio 2019. Siempre que esté utilizando 2019, envíe un problema con los detalles y me complace ayudar.
¿Por qué el ensamblaje X86 está en línea mientras que las variantes X64 están en un archivo .asm?
Microsoft pensó que sería una gran idea dejar de permitir que los desarrolladores escriban un ensamblaje en línea para X64. No sé por qué, pero la razón común por la que veo citado en Internet es que los desarrolladores apestan al escrito de la asamblea y los compiladores son mucho mejores. Si bien no estoy en desacuerdo con esto, dudo que esa sea la verdadera razón. Cualquiera sea la razón, ahora tenemos que saltar a través de aros para hacer algo incluso remotamente similar. Muchas gracias a Lallouslab y Onipot por guiarme a través de este campo minado.
Tengo más preguntas.
¡Estaría feliz de responderles! Envíe un problema de GitHub con sus preguntas y haré todo lo posible para ayudar lo antes posible.
Gracias a los contribuyentes y a todos los que han proporcionado comentarios en el pasado sobre este proyecto.