O que você aprenderá neste tutorial Ghidra
O fluxo básico é criar um projeto, importar um arquivo, confirmar a arquitetura, executar a análise, encontrar uma função e comparar assembly com pseudocódigo.
Este tutorial prioriza a análise estática: use seus próprios binários, exemplos de código aberto, crackmes educativos ou programas que você esteja autorizado a inspecionar. Não é necessário executar o alvo.
- O fluxo básico é criar um projeto, importar um arquivo, confirmar a arquitetura, executar a análise, encontrar uma função e comparar assembly com pseudocódigo.
- Mantenha a análise estática com arquivos autorizados e não execute o alvo durante o exercício.
- CodeBrowser + Listing + Decompiler
- XRefs + Function Graph
Prepare um laboratório seguro
Use programas próprios, exemplos de código aberto ou desafios autorizados. Arquivos desconhecidos devem ficar em uma máquina virtual isolada e não precisam ser executados.
Para o primeiro exercício, compile um pequeno programa C que verifica uma senha ou escolha um crackme legal criado para aprendizagem. Calcule o hash antes da análise e preserve o original.
Use programas próprios, exemplos de código aberto ou desafios autorizados. Arquivos desconhecidos devem ficar em uma máquina virtual isolada e não precisam ser executados.
Crie o projeto, importe e analise
Crie um projeto não compartilhado, importe o arquivo e confira formato, processador, endianness e compilador antes do Auto Analysis.
Confira o formato detectado, processador, linguagem, endianness e especificação do compilador. Arquivos PE e ELF comuns costumam funcionar com os padrões, enquanto firmware bruto e arquiteturas incomuns exigem confirmação manual.
- 1
Projeto
Crie um projeto não compartilhado, importe o arquivo e confira formato, processador, endianness e compilador antes do Auto Analysis.
- 2
Importar
Confira formato, processador, linguagem, endianness e compilador; confirme manualmente firmware bruto e arquiteturas incomuns.
- 3
Analisar
Crie um projeto não compartilhado, importe o arquivo e confira formato, processador, endianness e compilador antes do Auto Analysis.

Entenda CodeBrowser, Listing e símbolos
Listing mostra endereços, bytes e instruções; Decompiler oferece uma interpretação. Symbol Tree, strings e pesquisa ajudam a encontrar pontos de entrada.
Comece por uma string reconhecível, consulte suas referências e avance para a função chamadora. Isso costuma ser mais rápido do que percorrer cada instrução a partir do ponto de entrada.
| Janela | Uso | Ação |
|---|---|---|
| Listing | Instruções | Verificar |
| Decompiler | Pseudocódigo | Interpretar |
| Symbol Tree | Símbolos | Navegar |
| Defined Strings | Texto | Encontrar ponto |
Use bem o decompilador do Ghidra
O pseudocódigo acelera a leitura, mas conclusões importantes devem ser confirmadas no Listing. Renomeie e aplique tipos somente com evidências.
Melhore o resultado conforme surgirem evidências: renomeie funções e variáveis, aplique tipos, defina estruturas e adicione comentários. Cada correção oferece mais contexto para a análise seguinte.
- 1
Encontrar um ponto
O pseudocódigo acelera a leitura, mas conclusões importantes devem ser confirmadas no Listing. Renomeie e aplique tipos somente com evidências.
- 2
Seguir referências
Renomeie e aplique tipos com base nas evidências, depois adicione estruturas e comentários para melhorar o contexto.
- 3
Confirmar evidências
O pseudocódigo acelera a leitura, mas conclusões importantes devem ser confirmadas no Listing. Renomeie e aplique tipos somente com evidências.

Siga referências e o gráfico de funções
XRefs mostram usos, chamadores e destinos. Function Graph ajuda a visualizar ramificações, loops e caminhos alternativos.
O Function Graph transforma blocos e ramificações em um mapa visual do fluxo de controle. Use-o para condições aninhadas e loops, depois volte ao Decompiler para explicar cada caminho.

Primeiro exercício de 30 minutos
Localize mensagens de sucesso e erro, siga as referências, identifique a função de decisão e explique a condição principal com evidências.
Adicione um marcador ao ramo principal e salve o projeto. O objetivo não é recuperar a fonte perfeitamente, mas criar uma trilha reproduzível da string à referência, função, condição e conclusão.
- 0-5
- 5-12
- 12-22
- 22-30
Erros comuns de iniciantes
Não trate pseudocódigo como fonte original, confirme a arquitetura, aguarde o fim da análise e não execute arquivos desconhecidos.
Evite ativar todos os analisadores, executar binários desconhecidos ou tratar tipos presumidos como fatos. Reimporte o arquivo com a arquitetura correta quando instruções e referências parecerem incoerentes.
| Problema | Risco | Melhor escolha |
|---|---|---|
| Pseudocódigo | Conclusão errada | Verificar |
| Arquitetura | Decodificação errada | Importar novamente |
| Arquivo desconhecido | Risco de segurança | Laboratório isolado |
Próximos passos e fontes oficiais
Repita o fluxo com exemplos pequenos e legais. Depois consulte a documentação oficial e o guia PyGhidra para automatizar tarefas. GhidraDocs.
As imagens vêm do repositório oficial do Ghidra da NSA. Versão verificada em 22 de agosto de 2026: Ghidra 12.1.3, publicada em 18 de agosto de 2026. Continue com o guia do descompilador do Ghidra ou automatize tarefas com PyGhidra.
Perguntas sobre o tutorial Ghidra
É seguro usar o Ghidra?
Baixe a versão oficial do GitHub e analise arquivos desconhecidos em ambiente isolado sem executá-los.
Devo começar pelo depurador?
Comece pela análise estática e aprenda funções, referências e fluxo de controle.
O Ghidra recupera o código-fonte original?
Não. O decompilador produz uma interpretação útil, não o código exato.
Como atualizar o Ghidra?
Extraia a nova versão oficial em outra pasta e verifique as extensões.
Quais arquivos posso analisar?
Somente arquivos próprios, autorizados, abertos ou feitos para estudo.