Preciso ter o IDA Pro para usar a ferramenta BinDiff?

Estou tentando aprender a usar a ferramenta BinDiff , mas consigo ” t descobrir como abrir dois binários para fazer a comparação. Enquanto folheio o manual, parece que preciso do IDA Pro para isso.

Posso usar o BinDiff sem o IDA Pro (digamos, apenas com o IDA grátis)?

Comentários

Resposta

Sim, agora isso é possível com o Ghidra.

A versão mais recente, BinDiff 6 , tem suporte experimental para o desmontador Ghidra. Ele vem com uma extensão que permite exportar a desmontagem do Ghidra no formato .BinExport necessário para a comparação.

Software necessário

Instalando a extensão Ghidra

Após instalar o BinDiff, localize o “BinExport” extensão em sua pasta de instalação.

Os padrões são

  • Windows: C:\Program Files\BinDiff\extra\ghidra
  • Linux: /opt/bindiff/extra/ghidra
  • macOS: /Applications/BinDiff/Extra/Ghidra

Se você localizou o ghidra_BinExport.zip arquivo, a extensão pode ser instalada como qualquer outra extensão Ghidra:

  1. Inicie o Ghidra e selecione File | Install Extensions....
  2. Clique no botão + para Add extension.
  3. No Select Extension caixa de diálogo, navegue até o diretório que contém ghidra_BinExport.zip.

  4. Selecione o .zip arquivo e clique em OK

  5. Clique em OK para confirmar e novamente para descartar a mensagem de reinicialização. Em seguida, reinicie o Ghidra.

Uso

Esta versão do exportador baseado em Java para Ghidra tem os seguintes recursos em comparação com a versão C ++ nativa para IDA Pro:

| | Ghidra | IDA | | --------------------------------------- | ------ | --- | | Protocol Buffer based full export | ✓¹ | ✓ | | Statistics text file | - | ✓ | | Text format for debugging | - | ✓ | | BinNavi export into PostgreSQL database | - | ✓ | ¹ No operand trees 

Verificando a versão de instalação

  1. No Ghidra, selecione File | Install Extensions....
  2. Verifique se BinExport está listado e tem o Install Path

Invocação

  1. No Ghidra, abra um projeto ou crie um novo.
  2. Se ainda não tiver feito, abra o binário para exportar em a ferramenta Navegador de código e execute a análise inicial do Ghidra. Você pode querer habilitar a opção “localizador de instrução agressivo” para obter melhor cobertura na exportação.
  3. Na visualização do projeto, clique com o botão direito do mouse no binário para exporte e selecione Export...
  4. Na lista suspensa, selecione Binary BinExport (v2) for BinDiff
  5. Selecione um caminho para o arquivo de saída. Este pode ser o nome do arquivo original, como .BinExport será anexado.
  6. Clique em OK.

BinDiff Arquivos exportados

Os arquivos exportados agora podem ser comparados e os resultados exibidos em sua IU:

  1. Exporte dois binários seguindo as instruções acima. As etapas a seguir pressupõem primary.BinExport e secondary.BinExport.
  2. Na linha de comando, execute o mecanismo BinDiff com

    bindiff primary.BinExport secondary.BinExport 

    Isso criará um arquivo primary_vs_secondary.BinDiff no diretório atual. O comando bindiff deve estar no caminho do sistema.

  3. Inicie a IU do BinDiff por meio de bindiff --ui ou usando o iniciador para seu sistema operacional.

  4. Crie um novo espaço de trabalho ou abra um existente.

  5. Selecione Diffs | Add Existing Diff....

  6. Em Choose Diff, selecione o primary_vs_secondary.BinDiff criado na etapa 2.

  7. Clique em OK, seguido por Add. O diff agora é mostrado na visualização em árvore à esquerda e pode ser aberto com um clique duplo nele.

  8. Use o BinDiff normalmente para exibir o gráfico de chamada ou gráficos de fluxo de funções correspondentes .

Código aberto

Finalmente, a extensão BinExport (e também o plugin IDA Pro) é código aberto e está disponível no GitHub . A tag v11 corresponde ao BinDiff 6.

Comentários

  • Obrigado. Eu ' d ficaria tão feliz em me livrar da dependência do IDA Pro!

Resposta

O Bindiff pode ser um plugin no IDA ou autônomo, mas você ainda precisa do banco de dados IDA para comparar os binários.

insira a descrição da imagem aqui

Comentários

  • Duvido que consiga abrir um .idb sem o IDA instalado
  • @ismael_akez: posso gerar um arquivo de banco de dados sem o IDA?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *