Immunity Debugger

  • Posted on: 17 March 2015
  • By: ReYDeS

Immunity Debugger el Depurador Inmmunity es una poderosa nueva manera para escribir exploits, analizar malware, y realizar ingeniería inversa a archivos binarios. Se construye sobre una sólida interfaz de usuario con representación gráfica de funciones, es la primera herramienta de la industria construida específicamente para creación de pila, con una amplia y bien soportada API Python para una fácil expansión.

Entre sus características principales se enumeran.

  • Un depurador con una funcionalidad diseñada específicamente para la industria de la seguridad
  • Acorta el 50% el tiempo para desarrollo de exploits.
  • Interfaces simples y comprensibles.
  • Lenguaje de Scripting robusto y poderoso para una depuración inteligente.
  • Depuración rápida y liviana para prevenir corrupción durante un análisis complejo.
  • Conectividad a fuzzers y herramientas para el desarrollo de exploits.

Su Interfaz incluye un GUI y una línea de comando. La línea de comando esta siempre disponible en la parte superior del GUI. Esto permite al usuario tipear atajos como si se estuviese en un depurador típico basado en texto, como WinDBG o GDB. También se implementa alias para asegurar a los usuarios de WinDBG no tener un re entrenamiento y obtener una completa productividad con la mejor interfaz de depuración en el mercado.
Fi
Iniciar Immunity Debugger haciendo clic el ícono pertinente. Luego hacer clic en la opción “File -> Open” para abrir la aplicación directamente desde el depurador. Una segunda manera es adjuntar un proceso en funcionamiento al depurador.

Cuando la aplicación es cargada, el depurador abre una ventana por defecto, la vista CPU. Esta pantalla del CPU se divide en cuatro áreas. Desensamblado, Registros, Volcado, Pila.

Desensamblado

La parte de desensamblado se divide en cuatro columnas. En la primera columna se visualiza las direcciones de memoria. La segunda columna muestra los códigos de operación de la instrucción (vista hexadecimal de la instrucción) localizada en la dirección. El lenguaje máquina esta hecho de estos códigos de operación, y esto es lo que el CPU ejecuta en realidad. La tercera columna es código ensamblador. Ya que immunity es un depurador dinámico, se puede hacer doble clic sobre cualquier instrucción ensamblador y cambiarlo. El cambio será visible inmediatamente y se podrá ver como esto afecta el programa. La cuarta columna contiene comentarios. El depurador intenta adivinar algunos detalles sobre las instrucciones y si es satisfactorio pondrá los detalles en los comentarios. Si no se está satisfecho con lo adivinado por el depurador se puede borrar y escribir los comentarios propios haciendo doble clic.

Registros

Aquí se pueden visualizar los registros del CPU y sus valores. La selección superior son registros de propósito general, los cuales contienen valores temporales, y registros los cuales son utilizados para controlar el flujo del programa.

La sección intermedia contiene registros bandera los cuales el CPU cambia cuando algo de importancia ha ocurrido en el programa (como un sobreflujo). La selección inferior contiene registros los cuales son utilizados mientras se ejecutan operaciones de punto flotante.

Los registros pueden cambiar de color desde negro hacia rojo cuando cambian, lo cual facilita vigilar los cambios. Lo mismo con el código ensamblador, se puede hacer doble clic sobre cualquier registro y cambiar su valor. Se puede también seguir un valor almacenado en el registro si es una dirección de memoria válida haciendo clic derecho sobre este y seleccionando “Follow in dump”.

Volcado

La ventana de volcado muestra una vista hexadecimal del programa completo. Se divide en tres columnas. La primera columna muestra la dirección. La segunda columna muestra caracteres hexadecimales localizados en la dirección. En la tercera columna se puede ver la representación ASCII de los datos hexadecimales. Se puede buscar valores de Volcado haciendo clic derecho sobre esta y seleccionando “Search for -> Binary String”.

Pila

La localización de memoria hacia el cual apunta ESP (Stack Pointer Register) o Registro Puntero de Pila es mostrado en la parte superior de la ventana de pila. Se divide en tres columnas. La primera columna muestra la dirección. La segunda columna muestra los datos localizados en la dirección. Y la tercera columna contiene comentarios. Se pueden cambiar los datos en la pila haciendo doble clic.

Fuentes:

http://www.immunityinc.com/products/debugger/
http://debugger.immunityinc.com/
http://sgros-students.blogspot.com/2014/05/immunity-debugger-basics-part...

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense