GDB

Entre no GDB antes de continuar. Para acessar, basta executar o comando gdb. Caso queira instale também o peda, para deixar o GDB com um visual mais amigável.

Outro recurso que podemos utilizar para deixar o GDB mais amigável é executando os comandos abaixo:

gdb -q <file> -tui

# Código Assembly
layout asm

# x Registradores
layout regs

Configurando o gdb

Para deixarmos o gdb configurado para abrir sempre em formato Intel, execute os comandos:

gdb -q
set disassembly-flavor intel
quit

echo "set disassembly-flavor intel" >> ~/.gdbinit

Comandos Básicos

Exibindo o código fonte

Exibindo as variáveis

Vendo as functions do binário

Abaixo, algumas maneiras de executar o programa de forma normal, com parâmetros ou sem:

Executando o programa em modo debug

Vendo o Disasseble completo de um trecho (no exemplo abaixo, usamos o main)

Visualiza os endereços de memória que o programa está ocupando

Definindo novos valores paras os registadores

Argumentos

Registradores

Examine

O comando Examine (usamos o atalho x para executá-lo), serve para examinar determinado endereço de memória de várias maneiras. Este comando espera 2 argumentos, sendo eles o local da memória a ser examinado e o segundo é como exibir essa memória. Assim como o Examine utiliza uma abreviação (x), o formato de exibição também trabalha com abreviações, sendo elas:

Por exemplo, para exibirmos determinado endereço de memória em Hexadecimal, execute

Breakpoints

Inserindo Breakpoints

Deletando todos os breakpoints

Indo para a próxima instrução com NI (Next Instruction) e SI (Step Instruction)

Indo para o próximo breakpoint

Executando Determinada Função

Mesmo sem o programa chegar a determinada função, podemos forçar a sua execução. Com o padrão call((<type_return>(*)()) <method_name>)(<params>), podemos fazer isso, como no exemplo abaixo:

Sites

Last updated

Was this helpful?