Ghidra Downloadguia independente de download e instalação
Português
SCRIPTING NO GHIDRA

Ghidra Script Manager: Java, Python e automação segura

O Ghidra Script Manager é a forma mais rápida de localizar, editar e executar pequenas tarefas de automação dentro de um projeto Ghidra. Este guia explica o fluxo integrado, o limite atual do Python, padrões úteis da API e a diferença entre o Script Manager e a automação CPython nativa com PyGhidra.

Abrir a documentação oficial de scripting do Ghidra
Intenção principalScript Manager
Versão atualGhidra 12.1.3
Melhor paraTarefas pequenas e repetíveis
Limite do PythonPyGhidra para CPython
RESPOSTA RÁPIDA

O que o Ghidra Script Manager faz

O Script Manager é o espaço integrado do Ghidra para encontrar e executar scripts. Ele é útil quando a mesma inspeção ou tarefa de limpeza aparece em vários projetos: listar funções, renomear símbolos, exportar dados selecionados, adicionar comentários ou reunir evidências para um relatório. O resultado continua sendo uma ação normal de análise e deve ser conferido no CodeBrowser, Listing ou Decompiler.

Um script não substitui o entendimento do binário. Trate-o como um experimento pequeno e verificável: defina o projeto, faça a menor alteração útil, guarde uma cópia se houver escrita e registre o que mudou. O tutorial do Ghidra para iniciantes cobre o fluxo de análise estática; esta página se concentra na automação dentro dele.

Escopo e autorização

Analise apenas arquivos e sistemas que você tem autorização para examinar. O Script Manager pode modificar um projeto rapidamente; teste primeiro em uma cópia.

  • Encontrar scripts incluídos no Ghidra ou salvos nos diretórios de scripts.
  • Abrir um script, conferir linguagem e imports e executá-lo no programa ativo.
  • Usar o modelo do programa e o console para uma alteração pequena e repetível.
  • Separar a automação do Script Manager da automação CPython nativa com PyGhidra.
PASSO 1

Abrir o Script Manager e encontrar um script

Abra um projeto e inicie o Script Manager pelos menus de ferramentas do Ghidra. A posição exata pode variar conforme a ferramenta e a versão, mas o espaço inclui uma lista de scripts, filtros ou busca, um editor e ações para executar ou atualizar a lista. Se um script recém-copiado não aparecer, atualize a lista antes de investigar o código.

Comece com um script somente leitura ou de relatório. Leia os comentários do cabeçalho e os imports antes de pressionar Run. O cabeçalho deve dizer se o script precisa de um programa aberto, uma seleção, a função atual ou um processador específico.

  1. 1

    Abrir um projeto de prática

    Crie um projeto não compartilhado e importe um binário que você possa analisar. Mantenha o arquivo original e a cópia do projeto sem alterações.

    File > New Project > Non-Shared Project
  2. 2

    Iniciar o Script Manager

    Abra o espaço de scripting pelos menus de ferramentas e reduza a lista com filtro ou busca.

    Window > Script Manager
  3. 3

    Verificar antes de executar

    Confira linguagem, contexto necessário, imports, destino da saída e possíveis alterações em símbolos, comentários, tipos ou memória.

    Ler cabeçalho e imports primeiro
  4. 4

    Executar e revisar

    Execute uma vez em um alvo pequeno, leia o console e confira o estado no Listing ou no Decompiler.

    Run > Run Script
Janela oficial de projetos do Ghidra antes de abrir um fluxo do Script Manager
Crie e faça backup do projeto antes de executar automação. Captura oficial da janela de projetos do Ghidra.
PASSO 2

Escrever um primeiro script pequeno e com limite claro

O primeiro script deve responder a uma única pergunta: contar funções, imprimir nomes com um prefixo, listar strings definidas ou mostrar a seleção atual. Evite combinar análise, renomeação, exportação e limpeza na primeira tentativa. Um script limitado é mais fácil de revisar e executar novamente.

Use o modelo de programa que o Ghidra oferece aos scripts em vez de extrair dados da interface visível. Consulte funções, símbolos, referências, instruções ou blocos de memória e envie um resultado curto ao console. Consulte a referência da API GhidraScript para confirmar métodos atuais; exemplos antigos de fóruns podem não funcionar na sua versão.

Quando o script altera o programa, deixe a alteração clara na saída. Mostre contagens antes e depois, o endereço ou nome do símbolo e pare diante de um estado inesperado. Assim uma execução repetida continua auditável.

Checklist do primeiro scriptler contexto -> inspecionar um objeto -> imprimir resultado -> não alterar -> repetir
Nota útil de execuçãoalvo: practice.bin | escopo: programa atual | escritas: nenhuma | resultado: 12 funções
CodeBrowser oficial do Ghidra usado para conferir o resultado de um script no Listing e Decompiler
Revise a saída no espaço de análise visível, não apenas no texto do console. Captura oficial do CodeBrowser.
ESCOLHA DA LINGUAGEM

Java, Python e o limite do Ghidra 12.1.3

Os dados de busca misturam scripting do Ghidra, scripts do Ghidra e Python para Ghidra, mas essas expressões nem sempre descrevem o mesmo runtime. O Script Manager é a entrada dentro do aplicativo. Scripts Java são a escolha mais clara para automação reutilizável com as APIs Java do Ghidra. A disponibilidade do Python depende de como o processo foi iniciado e de qual integração está instalada.

Para automação com CPython nativo fora da janela integrada, consulte o guia de instalação do PyGhidra. O PyGhidra conecta um processo CPython externo à API do Ghidra, enquanto um script do Script Manager roda no contexto do aplicativo.

Não transforme uma diferença de runtime em reescrita

Identifique primeiro onde o script roda: Script Manager integrado, processo Ghidra iniciado com PyGhidra ou processo CPython externo. Depois escolha a documentação e o diagnóstico corretos.

NecessidadeUse primeiroMotivo
Uma ação pequena em um projeto abertoScript ManagerFeedback rápido e contexto visível
Automação Java reutilizávelScript JavaCombina com o modelo de API nativo
Fluxo CPython nativoPyGhidraFoi criado para um processo Python externo
Lote grande e repetívelScript com registroEntradas, saídas e falhas ficam revisáveis
FLUXO DE TRABALHO

Padrões úteis do Script Manager em projetos reais

Um script útil costuma ter quatro partes: estabelecer o contexto, selecionar um conjunto pequeno de objetos, realizar uma operação e relatar o que aconteceu. O contexto pode ser o programa, o local, a seleção ou a função atual. A seleção deve ser explícita: filtro de nome, intervalo de endereços, bloco de memória, propriedade de função ou conjunto de referências.

Estruture a saída para comparar duas execuções. Um resumo de uma linha ajuda, mas uma linha por item com endereço ou nome do símbolo facilita a depuração. Para scripts lentos, teste primeiro uma função ou bloco de memória e mostre um marcador de progresso.

  • Leia o programa e o local atuais antes de solicitar estado global.
  • Prefira um iterador ou seleção limitada a uma varredura sem limite.
  • Confira endereços, símbolos e tipos de dados no Listing como evidências.
  • Separe descoberta somente leitura das operações de escrita.
  • Salve uma cópia antes de renomear, alterar tipos ou gerar comentários em massa.
Modelo mental repetívelcontexto -> seleção -> operação -> evidência -> plano de reversão
SOLUÇÃO DE PROBLEMAS

Corrigir problemas comuns de scripting no Ghidra

Quando um script falhar, capture primeiro a mensagem exata e o contexto do runtime. Registre versão do Ghidra, sistema operacional, linguagem, programa aberto, seleção e como o processo foi iniciado. Esse registro evita aplicar uma solução do PyGhidra a um problema do Script Manager.

Verifique também o menor caso que reproduz o erro. Um script que falha apenas em um processador, função danificada ou seleção vazia geralmente precisa de uma verificação de limite, não de uma reescrita ampla.

Guarde as evidências do erro

Salve o texto completo, o arquivo ou cópia mínima que reproduz o erro e a versão do script. Não publique binários desconhecidos nem dados sensíveis de análise em uma issue pública.

SintomaVerificar primeiroPróxima ação segura
O script não apareceAtualização, caminho, extensão e diretóriosRecarregar a lista e abrir o arquivo diretamente se possível
Python não está disponívelComo o Ghidra foi iniciado e a configuração do PyGhidraUsar Java ou seguir o fluxo do PyGhidra
Não há programa ou seleçãoFerramenta ativa, projeto, programa e seleçãoAbrir o programa e testar uma função
A saída parece erradaArquitetura, endereços, Listing e tiposVerificar a hipótese no CodeBrowser antes de editar o script
CHECKLIST

Uma rotina de scripting segura e repetível

Para uma tarefa única, a rotina pode ser curta. Para uma equipe ou investigação repetida, registre entrada, resultado esperado, revisão do script, versão do Ghidra e se o script altera o projeto. O guia do Decompiler ajuda a conferir o resultado; o guia de instalação explica como separar aplicativo, JDK, projetos e backups.

Comece com saída somente leitura, compare-a ao Listing e só depois habilite alterações. Mantenha uma contagem antes/depois e um plano de reversão ou cópia do projeto. Se o script se tornar um sistema com entradas externas, testes e dependência de CPython, avalie PyGhidra ou um harness próprio.

  1. 1

    Preparar

    Fixe a versão do Ghidra, abra uma cópia do projeto e registre o escopo pretendido.

    versão + entrada + escopo
  2. 2

    Observar

    Execute um script somente leitura e guarde uma pequena amostra com endereços.

    somente leitura primeiro
  3. 3

    Alterar

    Faça uma mudança controlada, mostre a contagem e confira o resultado nas visões de análise.

    uma operação + evidência
  4. 4

    Preservar

    Salve script, notas, saída e cópia do projeto para comparar ou desfazer a execução.

    script + log + cópia
PERGUNTAS FREQUENTES

Dúvidas sobre o Ghidra Script Manager

O que é o Ghidra Script Manager?

É o espaço integrado do Ghidra para descobrir, editar e executar scripts no projeto ou programa ativo. Ele serve para automações pequenas e revisáveis e não é um processo CPython externo.

Posso usar Python no Script Manager?

A disponibilidade do Python depende do runtime e da forma como o Ghidra foi iniciado. Se o aplicativo indicar que Python não está disponível, use Java para automação integrada ou siga o guia do PyGhidra para CPython.

Scripting no Ghidra é a mesma coisa que PyGhidra?

Não. O Script Manager roda dentro do Ghidra, enquanto o PyGhidra conecta um processo CPython nativo à API do Ghidra. A instalação e a solução de problemas são diferentes.

Por que meu script não aparece na lista?

Atualize a lista e verifique extensão, diretório de scripts e filtros de linguagem. Confira também se o cabeçalho e os imports correspondem à versão atual do Ghidra.

O primeiro script deve modificar um projeto?

É melhor começar com um relatório somente leitura. Depois de conferir a saída no Listing ou Decompiler, teste uma alteração controlada em uma cópia, com contagem e plano de reversão.