A bomba binária é um projeto de laboratório do livro "Computer Systems - A Programmer's Perspective" do Randal E. Bryant e David R. O'Hallaron, distribuido no site http://csapp.cs.cmu.edu/. É um ótimo treinamento para o assembly x86.
A bomba binária - by: Dr. Evil:
O malígno Dr. Evil plantou algumas 'bombas binárias' em algumas máquinas. Uma bomba binária é um programa que consiste em uma sequência de fases. Em cada fase é preciso digitar uma string particular na entrada padrão (stdin). Se você digitar a string correta, então a fase é 'desarmada' e prossegue para a próxima. Caso contrário, a bomba explode imprimindo 'BOOM!!!' e é encerrado.
O GNU Project Debugger permite executar e modificar programas compilados por etapas, examinar a memória dos programas e ver os registros do processador. O GDB suporta as linguagens ADA, C, C++, assembly, e outros.
Comandos básicos:
run: inicia a execução do programa. kill: termina a execução do programa. q: sai do gdb. b *A: insere um breakpoint no endereço absoluto A. step <n>: executa a linha atual e passa para a próxima linha. next <n>: continua a execução até a próxima linha da função atual. display <expressão>: imprime o valor atual da variável passada como argumento. undisplay <n>: remove a entrada "n" da lista de exibição. print <expressão>: imprime o valor de uma variável ou expressão sem adicioná-los a lista de exibição. info reg: lista os registros. x /CT A:C número de unidades para exibir. T x número inteiro. b binário. c caractere. s string que termina nula. A endereço absoluto.