TP2 :: análisis de código assembly (bomba)

Índice

Manejo del repositorio

La configuración del repositorio para este lab es:

  • subdirectorios con el código: tp2
  • rama desde la que realizar la entrega: tp2
  • se permite git push directo a rama de la solución: no
  • ubicación pública del esqueleto: github.com:orgacomp/labs, rama 2021b/tp2

La integración se realizará siguiendo los mismos pasos que en el lab anterior.

IMPORTANTE: La integración del esqueleto debe realizarse exclusivamente mediante git merge. De copiarse los archivos a mano, se generarían conflictos en el pull request de la entrega.

bomblab

Esta parte del lab consiste en ejercitar el uso de GDB para examinar y determinar la entrada que “desactivará” un binario de código desconocido. En otras palabras, se tendrá un binario estructurado en “fases de ejecución”, cada una de las cuales precisa una contraseña (una cadena) para pasar con éxito a la siguiente fase.

Detalles:

  • Se debe descargar un binario único desde el formulario y solucionar las seis etapas antes de la fecha de entrega indicada para esta parte. Cada vez que se soluciona una etapa, se envía un mensaje al servidor del lab; se puede verificar que se registró la etapa en la tabla de puntajes.

  • Preguntar libremente en Discord o la lista de docentes, pues un gran objetivo de este lab es aprender el manejo de GDB de cara a futuros trabajos prácticos.

  • El esqueleto de invocación de GDB visto en clase (y presente en el esqueleto de Github) es:

    1
    
    $ gdb -x gdb.conf ./bomb
    

    donde gdb.conf contiene comandos de inicialización del estilo:

    1
    2
    
    set disassemble-next-line on
    run solucion.txt
    

    y solucion.txt la solución a cada una de las etapas ya superadas (una cadena por línea).

  • Fuente: este lab es parte de los Lab Assignments asociados al libro: Computer Systems: A Programmer’s Perspective.