La técnica más simple para comprobar si un programa se encuentra dentro de un depurador, es decir, esta siendo depurado, es aquella que realiza una comprobación al estado de la bandera BeingDebugged, dicha bandera se encuentra en el PEB (Process Environment Block) y tiene el offset 0x02.
Se puede notar que la función nos va a retornar un valor Booleano, es decir, si es 1 (TRUE) significa que el programa fue cargado desde un depurador, si es 0 (FALSE) significa que el programa esta corriendo fuera de un depurador.
Otros códigos equivalentes a lo anterior pueden ser los siguientes:
La simpleza de esta medida antidepuración la convierte hoy en día en una de las medidas menos efectivas para tratar de evitar a un depurador ya que basta con modificar manualmente la flag PEB.BeingDebugged con el valor 0x00 para evitarla.
Pero bueno ya en otras entradas abordare técnicas más sofisticadas para detectar depuradores, por ahora trata de entender bien el funcionamiento de los códigos proporcionados anteriormente y happy hacking!.
Pero bueno ya en otras entradas abordare técnicas más sofisticadas para detectar depuradores, por ahora trata de entender bien el funcionamiento de los códigos proporcionados anteriormente y happy hacking!.
No hay comentarios.:
Publicar un comentario