Visor de diferencias hexadecimales para Linux

Estoy buscando un buen visor hexadecimal para Linux.

Debe tener una GUI y ser intuitivo de usar.

También debería poder comparar dos archivos y tal vez incluso mostrar una diferencia.

Respuestas (3)

Visores de diferencias hexadecimales con gráficos de consola/terminal:

  • vbindiff, Divide la pantalla en arriba y abajo, sin vista derecha/izquierda, salida de ancho fijo.
  • hexdiff, Mismo aspecto superior/inferior que vbindiff, salida de ancho fijo, y puede ser un editor hexadecimal .
  • dhexVisor de diferencias superior/inferior, editor hexadecimal, salida de ancho variable (se adapta a la terminal) y ofrece una mejor navegación.

Visores de diferencias hexadecimales gráficas: no conozco uno, pero aquí hay una función de shell que usa mgdiff, (que tiene vista izquierda/derecha) y hexdump(también conocido como hd), de manera ineficiente:

mgdiffhex () 
{ 
    a="/tmp/$(basename "$1")$$.hex"
    b="/tmp/$(basename "$2")$$.hex"
    hd "$1" > "$a"
    hd "$2" > "$b"
    mgdiff "$a" "$b"
    rm     "$a" "$b"
}

Entonces corre:

mgdiffhex foo bar

Notas: La hexdumputilidad se puede invocar con opciones de formato que permiten anchos de terminal arbitrarios; mgdiffhexse puede cambiar el tamaño, pero carece de cualquier medio para reformatear los volcados hexadecimales dentro de la ventana redimensionada. Combinarlos crea un visor de diferencias hexadecimales gráfico tosco.

La respuesta es wxHexEditor en repositorios de Ubuntu.

https://github.com/EUA/wxHexEditor

¿Podría agregar una captura de pantalla que muestre la función diff? ¡Gracias!

Por alguna razón, es difícil encontrar una herramienta GUI que haga una diferencia en los archivos binarios. Encontré algunas opciones, pero honestamente, las opciones de CLI sugeridas por agc pueden terminar brindando una mejor experiencia de usuario.

wxHexEditor

  • Puede ser la mejor opción, aunque tiene valores predeterminados extraños que dificultan su uso (consulte a continuación las soluciones alternativas):
    • Esquema de color predeterminado ilegible (probablemente debido a la paleta Gnome predeterminada de Ubuntu)
    • Los valores predeterminados son direcciones de base 10 (se pueden cambiar en la columna Desplazamiento haciendo clic con el botón derecho; no veo una forma de cambiarlo en los Resultados de la comparación )
    • Al hacer una diferencia de 2 archivos, por defecto solo se desplaza un archivo
    • Los bytes por línea se basan en el ancho de la pantalla
  • Para comparar archivos:
    1. Herramientas > Comparar archivos
    2. Asegúrese de marcar Conectar archivos para desplazarse o, de lo contrario, cada archivo se desplazará por separado
  • Ajustes de usabilidad
    1. Haga clic con el botón derecho en la columna Desplazamiento para cambiar a valores hexadecimales
    2. Opciones > Preferencias > habilitar Límite de bytes por línea (de lo contrario, los bytes por línea se basan en el ancho de la pantalla)
    3. Opciones > Preferencias > cambie los colores hexadecimales según sea necesario (cambié el último a negro para que sea legible)

altura x profundidad

  • Esta es una herramienta de Windows pero funciona bien en Wine
  • Esto fue mucho menos útil que wxHexEditor:
    • No resalta las diferencias entre los archivos.
    • Maneja las diferencias byte a byte
    • Detecta diferencias debajo del cursor para cada archivo, lo que significa que si hace clic con el cursor en una ubicación diferente, comparará una ubicación diferente en cada archivo
  • Para comparar archivos:
    1. Análisis > Comparación de datos > Comparar
    2. Análisis > Comparación de datos > Siguiente diferencia

ImHex

  • De alguna manera, este terminó siendo incluso peor que HxD:

    • No parece haber otra forma de ir a la siguiente diferencia que no sea desplazarse
    • El inspector de datos no funciona al comparar archivos

    Al menos resalta grandes secciones de cambios (en lugar de solo byte por byte) como HxD. Pero en general no ofrece nada sobre wxHexEditor.

  • Para comparar archivos:

    1. Ver > Diferenciar

ghidra

  • Ghidra es un poco diferente, ya que es más una herramienta de ingeniería inversa que un editor hexadecimal, y solo muestra un byte por línea, por lo que lo puse en último lugar.
  • Para comparar archivos:
    1. Crear un nuevo proyecto
    2. Importar archivos al proyecto
    3. Haga doble clic en el archivo para abrirlo en CodeBrowser
    4. Omitir análisis cuando se le solicite
    5. Herramientas > Diferencias de programa
    6. Hacer diferencias en > anular la selección de todo menos Bytes
    7. También puede ir a Ventana > Bytes para ver una vista de editor hexadecimal más típica, pero solo mostrará un archivo a la vez.