Ghidra Downloadguia independente de download e instalação
Português
ANÁLISE SEM INTERFACE

Analisador headless do Ghidra: análise por CLI

O analisador headless do Ghidra executa o Ghidra sem abrir a interface gráfica. Com o lançador analyzeHeadless na pasta support, você pode importar binários autorizados, processar um projeto existente, executar scripts antes ou depois da análise e repetir o mesmo fluxo em vários arquivos. Este guia explica qual comando escolher, como proteger os projetos, como ler o resultado e como investigar uma falha.

Abrir a documentação oficial do analisador headless
Ideal paraAnálise em lote repetível
Ponto de entradasupport/analyzeHeadless
Modos principais-import e -process
Versão verificadaGhidra 12.1.3 · 16 de set. de 2026
RESPOSTA RÁPIDA

Analisador headless do Ghidra: o que é e quando usar

O analisador headless do Ghidra é a entrada de linha de comando para executar análises sem abrir o aplicativo desktop. Ele pode criar ou completar um projeto, analisar programas importados ou existentes e executar scripts sem interface para pastas de amostras, triagem de firmware, relatórios agendados ou pipelines controlados.

Headless não é um servidor remoto e não torna todas as conclusões automáticas. O lançador ainda depende da instalação do Ghidra, do local do projeto, dos loaders, dos analisadores, dos scripts e das regras normais do projeto. Registre a versão, o conjunto de entradas, as opções, o projeto de saída e o log; analise somente material para o qual você tenha autorização.

Mantenha a fonte de verdade visível

A documentação oficial e o lançador support/analyzeHeadless da versão instalada definem as opções disponíveis. Esta página explica um fluxo cuidadoso, mas não substitui a ajuda incluída na sua versão do Ghidra.

ANTES DO COMANDO

Prepare a instalação, o projeto e os arquivos de entrada

Comece com o ZIP oficial do Ghidra e um JDK de 64 bits compatível. A versão verificada para este site é o Ghidra 12.1.3, publicado em 18 de agosto de 2026, e o arquivo inclui o lançador em support/. Consulte o guia de instalação do Ghidra se o aplicativo desktop não iniciar; um JDK com problema ou uma extração incompleta também interrompe execuções headless.

Mantenha o aplicativo, o projeto e as pastas de entrada e relatório separados. Não edite um projeto ativo a partir de um job em lote nem sobrescreva uma cópia conhecida como boa antes de revisar a nova execução. Use um nome de projeto novo ao testar scripts ou opções de análise.

  1. 1

    Confirme o lançador

    Na instalação do Ghidra, verifique se o lançador da sua plataforma existe e consegue mostrar a ajuda. O Windows usa o arquivo batch; macOS e Linux usam o lançador de shell.

    support/analyzeHeadless.bat OU support/analyzeHeadless
  2. 2

    Escolha uma raiz de projeto gravável

    Reserve espaço suficiente para programas importados, bancos de dados, caches e relatórios. Evite uma pasta sincronizada enquanto investiga bloqueios ou gravações simultâneas.

    D:\analysis\projects /srv/ghidra/projects
  3. 3

    Registre o conjunto de entradas

    Anote nomes de arquivos, hashes, arquiteturas esperadas e data da coleta. Um caminho de diretório não é uma entrada reproduzível se o conteúdo não estiver registrado.

    samples/firmware-a.bin samples/firmware-b.bin
  4. 4

    Faça backup antes de processar

    Copie o projeto antes de executar um script que renomeie símbolos, altere tipos de dados, remova programas ou salve dados atualizados.

    ProjectName.gpr + ProjectName.rep/
Janela Project oficial do Ghidra mostrando um projeto e arquivos executáveis importados
Captura oficial da janela Project do Ghidra: mantenha os dados do projeto separados do aplicativo e faça backup antes de automatizar alterações.
ESCOLHA UM MODO

Escolha entre -import e -process

A decisão principal do analisador headless é saber se o comando deve criar ou completar um projeto a partir de arquivos, ou reabrir programas que já estão em um projeto. Use -import quando um arquivo ou diretório deve virar programas do projeto. Use -process quando o projeto já contém o programa.

Não adicione os dois modos apenas porque um exemplo na internet os mostra juntos. Comece com um job explicável, informe um loader ou processador somente quando necessário e salve o comando bem-sucedido em um script versionado.

TarefaModoEntrada comumO que verificar
Criar um projeto a partir de binários-importArquivo ou diretórioLoader, linguagem e nome do projeto
Analisar programas já salvos-processProjeto existenteNomes dos programas e cópia do projeto
Executar um script durante a importação-import + -postScriptNovo conjunto de entradasCaminho do script e saída salva
Processar uma árvore de programas-process + -recursiveÁrvore do projetoEscopo e log de cada execução
Windows: importar uma amostra de práticacd C:\ghidra_12.1.3_PUBLIC\support analyzeHeadless.bat D:\analysis\projects HeadlessDemo -import D:\analysis\samples\demo.exe
Linux ou macOS: processar um projeto existente./support/analyzeHeadless /srv/ghidra/projects HeadlessDemo -process demo.exe
AUTOMAÇÃO

Use scripts sem perder a repetibilidade

Jobs headless ficam mais úteis quando um script transforma o estado da análise em um resultado pequeno e revisável. Um pre-script pode preparar uma ação do projeto; um post-script pode inspecionar o programa analisado e escrever um relatório. Mantenha os scripts estreitos: imprimir funções, strings, imports ou um campo de metadados é mais fácil de testar do que renomear silenciosamente um projeto grande.

Coloque os scripts em um diretório versionado e passe-o com -scriptPath. Use -preScript e -postScript e guarde os logs. Se precisar de CPython fora do Ghidra, consulte o guia do PyGhidra.

  • Comece com uma tarefa de leitura ou geração de relatório e uma amostra pequena e autorizada.
  • Fixe a revisão do script ao lado do comando e da versão do Ghidra.
  • Escreva relatórios fora do diretório do projeto quando possível.
  • Teste um resultado vazio e uma segunda execução.
Ilustração conceitual ligando um fluxo de scripts do Ghidra à análise de programas e a um gráfico de funções
Ilustração conceitual: mantenha scripts headless pequenos, versionados e fáceis de comparar com a evidência produzida.
EXECUÇÕES REPETÍVEIS

Diretórios em lote, logs e jobs de CI

Em um fluxo baseado em diretório, decida se os arquivos devem compartilhar um projeto ou usar projetos isolados. Um projeto único facilita a navegação entre arquivos; projetos separados reduzem a mistura acidental. Use -recursive somente quando pastas aninhadas fizerem parte do escopo, pois um caminho amplo pode importar mais dados do que o esperado.

Registre o comando, as versões, o manifesto, a revisão do script, o status de saída, os logs e os resultados inesperados. No CI, arquive relatórios e falhe quando o lançador ou o post-script informar um problema.

Evite estado oculto

O mesmo comando pode produzir conclusões diferentes quando mudam a pasta de entrada, o perfil do projeto, as extensões, a revisão do script ou a versão do Ghidra. Registre esses limites ao lado do relatório.

Importação recursiva limitada./support/analyzeHeadless /srv/ghidra/projects BatchSet -import /srv/ghidra/samples -recursive -scriptPath /srv/ghidra/scripts -postScript export_summary.py
Registro prático de uma execuçãorelease=12.1.3 input_manifest=sha256.csv script=export_summary.py@abc123 project=BatchSet log=run-2026-09-16.log
VERIFIQUE A SAÍDA

Leia o resultado e verifique-o no Ghidra

Depois de uma execução headless, confira o status de saída e o log antes de abrir o projeto. Verifique mensagens do loader, linguagem ou compilador escolhido, conclusão da análise, exceções de scripts, arquivos ignorados e falhas de gravação. Depois, abra uma cópia na GUI e confira uma pequena amostra em Listing, referências, Decompiler ou símbolos. O guia de busca do Ghidra e o guia do Decompiler ajudam nessa verificação.

Um relatório é um artefato, não uma prova por si só. Se não houver strings, confirme a linguagem, o escopo e o objeto da API.

SintomaPrimeira verificaçãoPróximo passo seguro
Nenhum programa apareceModo de importação, caminho e loaderExecute um arquivo com um novo nome de projeto
O script não é encontradoCaminho e nome do arquivoUse um diretório absoluto de scripts e um script mínimo
A análise fica incompletaLog, tempo limite, memória e mensagensRepita uma amostra e compare a cópia do projeto
A saída difere da GUIVersão, linguagem, opções e fase do scriptVerifique o mesmo programa e as configurações nos dois caminhos
CodeBrowser oficial do Ghidra mostrando memória do programa, instruções e referências
Captura oficial do CodeBrowser: valide um relatório headless com evidência do programa em nível de endereço, não apenas com uma linha de resumo.
FAQ DO ANALISADOR HEADLESS

FAQ do analisador headless do Ghidra

Onde fica o analyzeHeadless no Ghidra?

Ele fica no diretório support/ da instalação do Ghidra. O Windows fornece analyzeHeadless.bat; Linux e macOS usam o lançador de shell. Use o lançador correspondente à versão instalada.

Qual é a diferença entre -import e -process?

Use -import quando o job começa com arquivos ou diretórios e precisa criar ou completar um projeto. Use -process quando os programas já estão no projeto e precisam ser processados.

O Ghidra pode analisar muitos arquivos sem a GUI?

Sim. O analisador headless pode importar ou processar um diretório, e opções como -recursive podem ampliar o escopo previsto. Comece com um conjunto pequeno e autorizado e registre o manifesto para conferir o resultado.

Posso executar um script com analyzeHeadless?

Sim. Use as opções de caminho do script, pre-script e post-script aceitas pela versão instalada. Versione os scripts, teste-os em uma cópia e guarde logs e relatórios junto ao registro do comando.

O analisador headless é igual ao PyGhidra?

Não. O analisador headless é o lançador CLI para imports e processamento de projetos. O PyGhidra conecta um processo CPython externo à API do Ghidra.