12 de set. de 2014

Bomba binária

2 comentários
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. 

GDB

0 comentários

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.