GDB

Um manual de referência para o gdb

Gdb é o acrônimo para Gnu Project Debugger. Ele é, como o nome diz, um debugger (depurador), que pode ser utilizado em engenharia reversa para obter o assembly e analisar arquivos binários.

Rodando e obtendo o Assembly (Disassembling)

Para abrir o programa, execute:

gdb nomeDoPrograma

Por padrão, o gdb utiliza a sintaxe AT&T. Como nós vamos utilizar principalmente a sintaxe da Intel, podemos alterar usando:

set disassembly-flavor intel

Para obter o assembly de uma função (por exemplo, a 'main'), devemos usar:

disassemble main

É importante notar que o programa será mostrado do jeito que está em memória, porém podemos utilizar outros softwares para visualizar melhor o fluxo do programa.

GDB - Principais Comandos

Apertar somente 'Enter' é equivalente a digitar e rodar o último comando novamente. (é bem útil quando precisamos repetir o mesmo comando diversas vezes).

Controle de Fluxo

  • run arg1, arg2...

     Roda o programa, passando os argumentos arg1, arg2... (pode ser utilizado sem os argumentos também)
  • break *address

     Define um breakpoint no endereço dado. Pode também ser utilizado passando o nome da função ao invés do endereço
  • del

  • si

  • ni

  • set $eax=x

  • define hook-stop

Registradores

  • info registers

  • x/wx $reg

  • x/s $reg

  • x/24wx $esp

  • x/2i $eip

  • x NomeDaFunção

  • p NomeDaFunção

  • info proc mappings

Last updated

Was this helpful?