hell debugger

The open source debugger

Hell debugger

Publicado por helldbg en Octubre 30, 2006

Bienvenidos al blog oficial de hell debugger. En este primer post hablaré sobre las motivaciones del proyecto, haré una descripción general sobre lo que intentará ser y como prendentemos llevar a cabo su realización.

La motivación

Durante años han existido debuggers muy capacitados como ollydbg o IDA Pro e incluso el mismo windbg, pero todos ellos corrian bajo Windows. Estos debuggers iban mucho mas allá de la funcionalidad “basica” de los debuggers gráficos embebidos en IDE’s como Visual Studio y permitian y permiten tareas avanzadas de análisis estático y dinámico sobre ejecutables. En linux en cambio no existe ningun programa de estas caracteristicas y aunque datarescue porto una versión de IDA a linux con un entorno gráfico basado en ncurses, distaba mucho de tener la misma funcionalidad que el original. Los debuggers nativos de linux, como gdb, o su frontend grafico, ddd, cumplen con las necesidades de cualquier programador, no obstante, un programador posee el código fuente de la aplicación que desarrolla y por lo tanto no necesita realizar ningun análisis previo sobre el ejecutable, ya que posee de antemano toda la información que podria necesitar para ello. Como en linux la mayoria de aplicaciones que se desarrollan son de código abierto, siempre se suele disponer del mismo y cualquier usuario ajeno a la organización que creó el programa, puede debuggearlo como si fuera un miembro más del equipo. Aun asi, hay ciertas aplicaciones bajo linux, que no son de este tipo, y que no han estado expuestas al analisis exhaustivo de terceras personas, ya que no habia herramientas que lo permitieran. Esta necesidad es la que intentará cubrir hell debugger ya que se asemejará a sus homologos en windows, ollydbg, IDApro etc.

Realización

Hell debugger, o Helldbg, sera un programa modular y, en la medida de lo posible, portable. Estara realizado en su mayor parte en c++, pudiendo tener pequeñas partes de código en c. Los modulos que componen Helldbg son los siguientes:

  • Debugging (interfaz sobre ptrace)
  • Interfaz ELF
  • Base de datos (utiliza berkeley db)
  • Asm Input/Output (ensamblador/desensamblador)
  • Análisis
  • Modulo de errores
  • Modulo de eventos
  • Interfaz de usuario

Basicamente, Helldbg trabaja sobre archivos .hdb, (bases de datos en berkeley db), por lo tanto, existirá una base de datos de este tipo por cada nueva sesion de debugging que se abra. Una vez iniciada la sesión, se extraerá toda la información del binario en disco (estático) y del binario en memoria mediante los modulos “Interfaz ELF”, “Análisis”, y “Debugging” (para extraer información de la ímagen del ejecutable en memoria). Una vez procesada toda la información, el usuario podra verla, buscar en ella y modificarla, mediante el modulo AsmIO encargado de las tareas de ensamblaje/desensamblaje de codigo máquina. Además de manejar información, el usuario también podrá realizar la tarea principal de un debugger, es decir, debuggear, mediante el modulo “Debugging”. Durante toda la sesión, cualquier error o evento que genere cualquiera de los modulos, sera debidamente mostrado al usuario atraves del modulo Interfaz. El modulo interfaz, sera una aplicación gráfica que permitirá al usuario tener el control de los modulos, de una forma sencilla, práctica y eficaz.

Esta descripción no quiere entrar en detalles, si no mas bien servir como introducción, para los que quieran saber “por encima” lo que va a ser este proyecto. Dispondreis de más información, en futuros posts, y en el directorio /doc, del arbol del proyecto.

Una respuesta para “Hell debugger”

  1. txipi escribió

    Qué brutal!!!!!!

    Estoy esperando la primera “release”. Si necesitas betatesters, aquí me tienes :-)

Escribe un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>