¿Necesito tener IDA Pro para usar la herramienta BinDiff?

Estoy tratando de aprender a usar la herramienta BinDiff , pero puedo » t averigüe cómo abrir dos binarios para hacer la comparación. Mientras hojeo su manual, parece que necesito tener IDA Pro para eso.

¿Puedo usar BinDiff sin IDA Pro (digamos, con solo IDA gratis)?

Comentarios

Respuesta

Sí, ahora esto es posible con Ghidra.

La última versión, BinDiff 6 , tiene soporte experimental para el desensamblador Ghidra. Se envía con una extensión que permite exportar el desmontaje de Ghidra al formato .BinExport necesario para diferenciar.

Software requerido

Instalación de la extensión Ghidra

Después de instalar BinDiff, busque «BinExport» extensión en su carpeta de instalación.

Los valores predeterminados son

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

Si ha localizado el ghidra_BinExport.zip, la extensión se puede instalar como cualquier otra extensión de Ghidra:

  1. Inicie Ghidra, luego seleccione File | Install Extensions....
  2. Haga clic en el botón + para Add extension.
  3. En el Select Extension cuadro de diálogo, navegue hasta el directorio que contiene ghidra_BinExport.zip.

  4. Seleccione el archivo .zip y haga clic en OK

  5. Haga clic en OK para confirmar y nuevamente para descartar el mensaje de reinicio. Luego reinicie Ghidra.

Uso

Esta versión del exportador basado en Java para Ghidra tiene las siguientes características en comparación con la versión nativa de C ++ 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 

Verificación de la versión de instalación

  1. En Ghidra, seleccione File | Install Extensions....
  2. Verifique que BinExport esté en la lista y tenga el Install Path

Invocación

  1. En Ghidra, abra un proyecto o cree uno nuevo.
  2. Si aún no lo ha hecho, abra el binario para exportar en la herramienta Code Browser y ejecutar el análisis inicial de Ghidra. Es posible que desee habilitar la opción «buscador de instrucciones agresivas» para obtener una mejor cobertura en la exportación.
  3. En la vista del proyecto, haga clic con el botón derecho en el binario para exportar y seleccionar Export...
  4. En la lista desplegable, seleccione Binary BinExport (v2) for BinDiff
  5. Seleccione una ruta para el archivo de salida. Puede ser el nombre del archivo original, ya que se añadirá .BinExport.
  6. Haga clic en OK.

BinDiff Archivos exportados

Los archivos exportados ahora se pueden diferenciar y los resultados se muestran en su interfaz de usuario:

  1. Exporte dos binarios siguiendo las instrucciones anteriores. Los siguientes pasos asumen primary.BinExport y secondary.BinExport.
  2. Desde la línea de comandos, ejecute el motor BinDiff con

    bindiff primary.BinExport secondary.BinExport 

    Esto creará un archivo primary_vs_secondary.BinDiff en el directorio actual. El comando bindiff debe estar en la ruta del sistema.

  3. Inicie la interfaz de usuario de BinDiff, ya sea a través de bindiff --ui o usando el lanzador para su sistema operativo.

  4. Cree un nuevo espacio de trabajo o abra uno existente.

  5. Seleccione Diffs | Add Existing Diff....

  6. En Choose Diff, seleccione el primary_vs_secondary.BinDiff creado en el paso 2.

  7. Haga clic en OK, seguido de Add. El diff ahora se muestra en la vista de árbol a la izquierda y se puede abrir haciendo doble clic en él.

  8. Use BinDiff normalmente para mostrar el gráfico de llamadas o los gráficos de flujo de funciones emparejadas .

Código abierto

Finalmente, la extensión BinExport (y también el complemento IDA Pro) es de código abierto y está disponible en GitHub . La etiqueta v11 corresponde a BinDiff 6.

Comentarios

  • Gracias. ¡Me ' me alegraría mucho deshacerme de la dependencia de IDA Pro!

Respuesta

Bindiff puede ser un complemento en IDA o independiente, pero aún necesita la base de datos IDA para comparar binarios.

ingrese la descripción de la imagen aquí

Comentarios

  • Dudo que pueda abrir un .idb sin IDA instalado
  • @ismael_akez: ¿puedo generar un archivo de base de datos sin IDA?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *