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.