0Pricing
Cyber Security Academy · Aula

Análise Dinâmica com GDB e pwndbg

Defina pontos de interrupção, inspecione a memória, rastreie chamadas de sistema e automatize sessões do GDB com pwndbg.

Análise Dinâmica com GDB e pwndbg é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

O que é análise dinâmica

A análise dinâmica executa um binário e observa seu comportamento em tempo real: conteúdo da memória, valores dos registradores, chamadas de sistema e conexões de rede. Ela complementa a análise estática (Ghidra) ao mostrar valores reais durante a execução e o fluxo de controle.

Noções básicas de GDB

O GDB (depurador do GNU) é o depurador padrão do Linux:

gdb ./vuln              # load binary
gdb -p 1234             # attach to running process
run [args]              # start execution
break main              # set breakpoint at main
continue (c)            # continue execution
next (n)                # step over
step (s)                # step into

Aprimoramento com pwndbg

O pwndbg é uma extensão do GDB que adiciona recursos auxiliares para o desenvolvimento de explorações:

  • Exibição visual da pilha e dos registradores a cada interrupção
  • Geração de padrões cyclic
  • Comando heap para visualizar a memória dinâmica
  • Localizador de sequências ROP rop
  • Proteções do binário com checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Pontos de interrupção e de observação

Controle a execução:

# Break at address:
break *0x401234
# Break at function:
break strncpy
# Watch memory address:
watch *0x7ffd1234     # break when value changes
# Conditional break:
break *0x401234 if $rax == 0
# List and delete:
info break
delete 1

Examinar memória e registradores

Inspecionando o estado:

info registers         # show all registers
print $rax             # print register value
x/10xg $rsp            # examine 10 qwords at RSP
x/s 0x402000           # examine as string
x/20i $rip             # disassemble 20 instructions at RIP
pwndbg: telescope $rsp 20  # smart stack display

Executar o código passo a passo

Comandos de navegação:

ni (nexti)             # step over (instruction level)
si (stepi)             # step into (instruction level)
finish                 # run until function returns
until 0x401234         # run until address

Criar scripts para o GDB

Automatize o GDB com Python:

# GDB Python script:
gdb ./vuln << EOF
python
for i in range(10):
    gdb.execute("continue")
    gdb.execute("x/4xg $rsp")
end
EOF

Analisar a memória dinâmica com pwndbg

Comandos de inspeção da memória dinâmica no pwndbg:

heap                   # show all heap chunks
heap -a                # show all allocations
bin                    # show free list bins
tcachebins             # show tcache entries
vis_heap_chunks        # visual heap map

Rastrear chamadas de sistema

Use strace para rastrear chamadas de sistema sem realizar uma depuração completa:

strace ./vuln          # trace all syscalls
strace -e trace=open,read,write ./vuln  # filter syscalls
strace -f ./vuln       # follow forks
# ltrace for library calls:
ltrace ./vuln

Configurar um ambiente de depuração

Configuração importante para o desenvolvimento de explorações:

# Disable ASLR for testing:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
# Or per-process:
setarch $(uname -m) -R gdb ./vuln
# Verify with:
ldd ./vuln  # check libc base

Depurar binários sem símbolos

Muitos binários de produção têm os símbolos de depuração removidos. Técnicas:

  • Use file e readelf para entender o binário
  • Defina pontos de interrupção em endereços, não em símbolos
  • Use assinaturas de funções para identificar chamadas comuns de bibliotecas
  • Carregue os símbolos da libc separadamente, se estiverem disponíveis

Verificação rápida: GDB

Qual comando no GDB define um ponto de interrupção que só é acionado quando uma condição específica é atendida?

Recapitulação da lição

O GDB com pwndbg permite realizar análise dinâmica: definir pontos de interrupção, examinar registradores e memória e rastrear a execução. Comandos principais: break, run, ni/si, x/format e info registers. O pwndbg adiciona visualização da memória dinâmica, visualização detalhada da pilha e ferramentas de padrões. strace/ltrace rastreiam chamadas de sistema e chamadas de bibliotecas sem exigir uma configuração completa de depuração.

Perguntas Frequentes

A aula “Análise Dinâmica com GDB e pwndbg” é grátis?

Sim — o texto completo de “Análise Dinâmica com GDB e pwndbg” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “Análise Dinâmica com GDB e pwndbg”?

Defina pontos de interrupção, inspecione a memória, rastreie chamadas de sistema e automatize sessões do GDB com pwndbg. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Análise Dinâmica com GDB e pwndbg”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ghidra: Navegação e Anotação de Binários
  2. Fundamentos de Assembly x86/x64 para Engenharia Reversa
  3. Análise Dinâmica com GDB e pwndbg
  4. Desofuscação e Técnicas Antianálise
← Voltar para Cyber Security Academy