Skip to content

Instantly share code, notes, and snippets.

@lucascebertin
Created March 15, 2020 17:18
Show Gist options
  • Select an option

  • Save lucascebertin/f3163670c17e16c94b2c045afcba1360 to your computer and use it in GitHub Desktop.

Select an option

Save lucascebertin/f3163670c17e16c94b2c045afcba1360 to your computer and use it in GitHub Desktop.
Comandos úteis de GDB

Comandos úteis de GDB

Inicialização de um programa

(gdb) file ./nome_do_programa # carrega um programa
(gdb) set disassembly-flavor intel # configura o disassembly para o tipo intel (tem AT&T e Intel, prefiro intel)
(gdb) layout regs # modifica layout de interface de debug para apresentar registradores
(gdb) layout next # vai para o próximo esquema de layouts
(gdb) set args 123123 # adiciona argumentos de inicialização, equivalente a './program 123123'
(gdb) run # inicia execução
(gdb) quit # sai da sessão de debug

Breakpoints

(gdb) b main # adiciona um breakpoint na função main
(gdb) b *0xffffabc # adiciona um breakpoint na endereço 0xffffabc

Print

(gdb) x/x $rax # print de conteudo hexa no registrados rax
(gdb) x/s $rax # print de conteudo string no registrador rax
(gdb) x/x $rbp-0x10 # print de conteudo hexa no registrador rbp-0x10
(gdb) x/s $rbp-0x10 # print de conteudo string no registrador rbp-0x10
(gdb) x/x 0xffffabc # print de conteudo hexa no endereço 0xffffabc
(gdb) x/10x 0xffffabc # print de 10 bytes de conteudo hexa iniciando do endereço 0xffffabc

Manipulação de registradores

(gdb) set $rax=0x41414141 # adiciona o conteudo "AAAA" no registrador rax
(gdb) set *((int*)($ebp-0x1C)) = 0 # adiciona no registrador ebp-0x1c, como sendo inteiro de 32bits, o valor 0
(gdb) p buf@1 = "A" # adiciona o texto "A" no inicio do buffer

Navegação

(gdb) ni # significa next instruction, 
(gdb) si # significa step-into
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment