Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
IDA-Ghidra-bridge — Servidores de ponte JSON TCP para IDA Pro e Ghidra, expondo descompilação, referências cruzadas, símbolos, vtables, RTTI e patch de memória para scripts externos e pipelines automatizados. | Kitploit
Ferramentas/GitHubGitHub/oscarsantanaarias/ida-ghidra-bridge
Análise EstáticaAnálise de CódigoAnálise Dinâmica de Código (DAST)Engenharia ReversaScripting e AutomaçãoDepuradoresUtilitários e FrameworksAnálise de BináriosEngenharia Reversa Assistida por IA
GitHuboscarsantanaarias/ida-ghidra-bridge

IDA-Ghidra-bridge

Servidores de ponte JSON TCP para IDA Pro e Ghidra, expondo descompilação, referências cruzadas, símbolos, vtables, RTTI e patch de memória para scripts externos e pipelines automatizados.

Ver Repositório
413há 7 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

IDA-Ghidra-bridge

Servidores de ponte TCP JSON leves para IDA Pro e Ghidra que expõem fluxos de trabalho de engenharia reversa através de um protocolo de socket simples.

Permite que ferramentas externas, scripts CLI, utilitários Python e pipelines automatizados consultem descompilação, xrefs, símbolos, tabelas virtuais, RTTI, estruturas e memória de patch sem interação manual com a GUI.


Arquitetura e Ciclo de Vida

1. Vinculação Dinâmica de Portas e Suporte a Múltiplas Instâncias

Ao trabalhar em grandes projetos de engenharia reversa com vários binários abertos ao mesmo tempo (por exemplo, cliente de jogo, launcher, proxies DLL e stubs simultaneamente):

  • Os servidores não falham se uma porta já estiver ocupada.
  • O servidor começa a verificar a partir de BASE_PORT = 5073 e sonda automaticamente portas sequenciais (5073, 5074, 5075, 5076...) até encontrar uma disponível.
  • Cada janela do IDA ou Ghidra vincula-se à sua própria porta de forma independente, sem conflitos.

2. Hot-Reloading e Reexecução Limpa

No IDA Pro, o interpretador Python permanece ativo entre múltiplas execuções de scripts:

  • ID_Server.py registra o handle do servidor em execução em builtins._ida_bridge_prev.
  • Se você reexecutar ou recarregar o script na mesma instância do IDA, ele invoca automaticamente stop() na instância anterior e aguarda sua thread (join(3.0)), liberando a porta de forma limpa antes de iniciar o novo servidor.
  • Você nunca recebe Address already in use ou threads órfãs ao reexecutar o script.

3. Encerramento Gracioso

  • Via Socket: Envie QUIT, STOP, EXIT ou SHUTDOWN pela conexão. O servidor confirma com {"ok": true, "shutdown": true} e fecha imediatamente.
  • No IDA Pro: Chame ida_bridge_stop() diretamente da CLI Python do IDA, ou simplesmente feche o IDA (threads daemon encerram automaticamente).
  • No Ghidra: Clique no botão vermelho Cancel no Script Manager do Ghidra (is_cancelled() é verificado a cada 1s via timeout do socket), ou envie QUIT.

Instalação e Configuração

IDA Pro

  1. Abra seu banco de dados alvo (.idb / .i64) no IDA Pro.
  2. Na CLI Python do IDA (ou via File -> Script file... / Alt+F7), execute:
    import ID_Server
    
  3. O servidor começa a escutar em 127.0.0.1:5073 (ou na próxima porta disponível).
  4. Para parar o servidor manualmente:
    ida_bridge_stop()
    

Ghidra

  1. Abra seu programa alvo no Ghidra CodeBrowser.
  2. No Script Manager (Window -> Script Manager), adicione a pasta que contém Ghidra_Server.py ou execute-o diretamente no interpretador Python.
  3. O servidor vincula-se a 127.0.0.1:5073 (ou próxima porta livre).

Referência Completa de Comandos (Todos os 39 Comandos)

Os comandos são strings simples delimitadas por nova linha enviadas via TCP (127.0.0.1:<PORT>). O servidor responde com um objeto JSON (ou texto delimitado por tabulação para comandos legados).

1. Navegação e Inspeção

ComandoSintaxeDescrição
PINGPINGVerificação de saúde. Retorna "pong".
CURRENTCURRENTRetorna o endereço atual do cursor, nome da função, tamanho, instruções de assembly e código descompilado.
NAMENAME <ea>Retorna o nome do símbolo/função definido em <ea>.
FUNCFUNC <addr>Retorna metadados completos da função, ponto de entrada, tamanho, assinatura, assembly e descompilação Hex-Rays/Ghidra.
DECOMPDECOMP <addr>Alias para FUNC. Descompila a função alvo.
DISASMDISASM <ea> [n]Retorna linhas de desmontagem para [n] instruções a partir de <ea> (padrão: 40).
FINDFIND <substr>Busca sem distinção de maiúsculas/minúsculas em todos os símbolos e nomes de funções que correspondem a <substr> (até 300 correspondências).
EXPORTEXPORT [path]Exporta todos os símbolos não-dummy, nomes mangled e demangled para um arquivo de texto (padrão: C:\Contexto\ida_names.txt).
HELPHELPRetorna uma lista JSON de todos os comandos disponíveis suportados pelo servidor.
QUITQUITFecha graciosamente a conexão do cliente e para o socket do servidor bridge.

2. Referências Cruzadas e Grafo de Chamadas

ComandoSintaxeDescrição
XREFXREF <addr>Lista todas as referências cruzadas de entrada (chamadas de código, leituras/escritas de dados) direcionadas a <addr>.
XFROMXFROM <addr>Lista todas as referências cruzadas de saída originadas de <addr>.
CALLERSCALLERS <addr>Filtra referências de entrada para retornar apenas locais de chamada (incluindo chamadas indiretas resolvidas).
READERSREADERS <addr>Filtra referências de entrada para retornar apenas instruções que leem de <addr>.
WRITERSWRITERS <addr>Filtra referências de entrada para retornar apenas instruções que escrevem em <addr>.
DECOMP_XREFDECOMP_XREF <addr>Descompila em lote todas as funções chamadoras de <addr> em uma única requisição.
IMPORTXREFIMPORTXREF <name>Localiza todos os locais de chamada em todo o binário para uma API importada do Windows/C (por exemplo, IMPORTXREF WSASendTo).
TRACETRACE <addr>Rastreia o fluxo de execução e blocos básicos ao redor de <addr>.

3. Ponteiros, Memória e Estruturas

ComandoSintaxeDescrição
READPTRREADPTR <addr> [count]Lê a memória como cadeias de ponteiros (32-bit ou 64-bit) e classifica cada alvo (func, string, vtable).
FINDPTRFINDPTR <addr>Varre dados globais e tabelas para encontrar qualquer ponteiro que referencie <addr> (encontra vtables, tabelas de despacho).
STRUCTSTRUCT <addr> [n]Despeja heuristicamente memória contígua interpretando campos como ints, floats, ponteiros e strings.
DEFSTRUCTDEFSTRUCT <name> [size]Cria uma nova estrutura nomeada na biblioteca de tipos do banco de dados.
SETFIELDSETFIELD <struct> <off> <type> [name]Define ou modifica um campo de estrutura em <off> com <type> e nome de campo opcional.
MKPTRSMKPTRS <addr> [count]Converte bytes brutos do banco de dados em ponteiros tipados em massa.
NEARSTRNEARSTR <addr>Encontra referências de string localizadas nas proximidades em seções de código ou dados dentro do alcance.

4. Tabelas Virtuais e RTTI

ComandoSintaxeDescrição
VTABLEVTABLE <funcaddr>Identifica quais tabelas virtuais contêm <funcaddr>, incluindo slots de métodos vizinhos.
VTDUMPVTDUMP <addr> [count]Despeja uma tabela virtual inteira: resolve cada slot para seu nome de método, offset e índice.
RTTIRTTI <addr|Name>Percorre estruturas RTTI do MSVC C++ (TypeDescriptor -> CompleteObjectLocator -> vftable) para resolver hierarquias de classes e classes base.

5. Varredura de Strings e Bytes

ComandoSintaxeDescrição
STRSTR <ascii>Busca strings ASCII em todos os segmentos carregados.
WSTRWSTR <utf16>Busca strings largas UTF-16 em todos os segmentos carregados.
BYTESBYTES <hex>Busca sequências brutas de opcodes ou bytes de dados (por exemplo, BYTES 55 8B EC 83 EC).

6. Modificação do Banco de Dados e Tipagem

Baixar ferramenta