Por favor recomiende un editor hexadecimal para shell

Respuestas:

24

emacs tiene un modo hexl para la edición hexadecimal.

psusi
fuente
44
hexl-mode no es adecuado para archivos grandes o particiones de disco, ya que carga todo el archivo en un búfer de emacs. Es ideal para archivos pequeños si ya te sientes cómodo con emacs.
Peter Cordes
1
@PeterCordes, para editar un disco, simplemente ddla región que desea editar en un archivo y ábralo en emacs, luego ddvuelva.
psusi
66
@psusi El problema es que no debería tener que esforzarme para editar un archivo
Cole Johnson
1
@ColeJohnson, no estamos hablando de editar un archivo; estamos hablando de editar un disco duro completo sin formato.
psusi
2
@psusi En mi máquina Windows, puedo usar HxD y abrir un disco como cualquier otro archivo.
Cole Johnson
76
xxd

Esta herramienta es la más comúnmente disponible que he encontrado para este tipo de tarea (disponible de forma predeterminada en los últimos Ubuntu y macOS). Puede eliminar la parte legible ascii a la derecha si es necesario usando -py puede revertir (cambiar la entrada ascii a datos binarios) usando la -rfunción. Aquí hay algunos ejemplos de usos simples:

Conversión a hexadecimal con vista ascii:

echo example | xxd

Convertir a un hexdump (sin vista ascii a la derecha):

echo example | xxd -p

Convertir de un hexdump a datos binarios:

echo 746573740a | xxd -p -r

Puede ser mucho más complejo con esto en los scripts de shell. De hecho, he usado esto y "dd" para buscar secuencias específicas y modificarlas de una manera predefinida, todo desde un script de shell utilizando nada más que bash dd, y xxd. En realidad, tampoco necesita dd para esto, ya que puede "buscar" en una ubicación específica y escribir en esa ubicación la secuencia de bytes que necesita. La mayor ventaja de este enfoque es que es fácilmente programable.

Duendecillo
fuente
2
xxd parece estar instalado en Ubuntu 16.04 por defecto, que es DULCE! ¡Gracias!
GlenPeterson
¡También disponible por defecto en MacOS!
thom_nic
34

También hay DHEX

apt-cache show dhex

editor hexadecimal basado en ncurses con modo diff

Esto es más que un simple editor hexadecimal: incluye un modo diff, que puede usarse para comparar fácil y convenientemente dos archivos binarios. Dado que se basa en ncurses y es temático, puede ejecutarse en cualquier número de sistemas y escenarios. Con su utilización de registros de búsqueda, es posible rastrear cambios en diferentes iteraciones de archivos fácilmente.

Si no está familiarizado con vim o emacs, este no parece tener una gran curva de aprendizaje.

mivk
fuente
3
La única desventaja de dhex imho es que no puede insertar / eliminar bytes. De lo contrario, es un editor hexadecimal de consola muy agradable.
Nicholi
Cuando ejecuto "dhex / path / to / big / file", aparece "error al abrir inputfile / path / to / big / file". Me gusta dhex y lo uso todo el tiempo para archivos de tamaño normal.
sondra.kinsey
@ sondra.kinsey: acabo de probar un archivo de 20 GB en mi máquina de 8 GB de RAM y no tuve ningún problema. Esto está en Ubuntu 16.04 64 bit, con dhex 0.68-2build1 (amd64). Entonces debería funcionar.
mivk
@mivk, probé dhex sin éxito con un archivo de 44GB usando dhex_0.68-2build1_i386 en Ubuntu 17.04 con 3 GB de RAM. hexedit y wxHexEditor abren el mismo archivo sin queja.
sondra.kinsey
@ sondra.kinsey: ¿tal vez un problema / error con la versión de 32 bits de dhex y archivos de más de 4 GB?
mivk
26

Es posible que también pueda usar vi / vim como editor hexadecimal (puede llamar a xxd).

Ingrese al modo hexadecimal:

:%!xxd

Salga del modo hexadecimal:

:%!xxd -r

Fuente: uso de vi como editor hexadecimal

klcant
fuente
1
Tendría cuidado con eso. He encontrado :%!xxdagregar nuevos caracteres (es decir, una nueva línea) al archivo.
Quazi Irfan
1
@iamcreasy no es xxdquién hace esto, sino Vim en sí.
Ruslan
3
¡No te olvides :set binary! De lo contrario, es probable que VIM corrompa el archivo al agregar un final de línea (CR / LF / CRLF) al final del archivo (dependiendo de lo que tenga configurado el formato ( set ff=[mac/unix/dos])). Es muy probable que esto rompa ejecutables y binarios de datos. Y lo hace Mucho. Asegurarse de que VIM esté en modo binario evitará que eso suceda.
Braden Best
8

Sé que esta es una vieja pregunta, pero no estaba satisfecho con todas las respuestas aquí. Estaba buscando un editor hexadecimal que me permitiera crear mis propios archivos binarios (también conocido como modo de inserción) y pudiera manejar archivos muy grandes.

Me encontré con un ajuste , que cumple estos dos requisitos, así como los OP.

  • Tweak admite el modo de inserción (no es particularmente útil si está editando un archivo ejecutable o una imagen del sistema de archivos, pero puede ser extremadamente útil en otros formatos de archivo como PNG).
  • Cortar, copiar y pegar dentro del archivo que está editando es extremadamente eficiente. No importa cuán grande sea la cantidad de datos que está moviendo, incluso si se trata de una sección de 200Mb de una imagen de CD, Tweak siempre realizará la operación de manera efectiva al instante.
  • Tweak admite la carga diferida del archivo de entrada: en lugar de absorberlo todo en la memoria de inmediato, simplemente recuerda qué partes del búfer de edición son copias de qué partes del archivo de entrada y hace referencia al archivo en el disco cuando es necesario. Tweak solo tiene que tomar un tiempo significativo cuando realmente lo necesita para leer todo el archivo. Las dos únicas operaciones con esta propiedad son buscar y guardar la versión modificada del archivo en el disco. Todo lo demás es instantáneo.
Gogeta70
fuente
Hmmm, un programa que está listo para modificar el búfer con cada pulsación de tecla equivocada, y no le indica al usuario cómo (o salir) usar el programa. ¡Qué asco! Resulta que el comando "salir" es el mismo que emacs ... pero no funcionó para mí la primera vez, así que probé todo lo que se me ocurrió antes de volver a intentarlo. Renuncié a emacs hace décadas, pero recuerda el comando más importante: Ctrl-X, Ctrl-C. Si te gustan los emacs, quizás te gusten tweak, pero para mí fue incómodo. Puedo intentarlo de nuevo si realmente necesito editarlo. Ejecute man tweakdesde el terminal para obtener una descripción general y una lista de comandos.
Lambart
@Lambart El objetivo del modo de inserción de tweak es modificar el búfer, por lo que su punto no es realmente válido allí. Además, debe leer la página de manual antes de usarla de todos modos. No hacerlo y luego quejarse de que no te dice cómo salir es simplemente vago.
Gogeta70
4

Bless Hex Editor es un editor binario (hexadecimal) y actualmente ofrece las siguientes características:

  • Edición eficiente de grandes archivos de datos y dispositivos de bloque.
  • Operaciones de deshacer y rehacer multinivel.
  • Vistas de datos personalizables.
  • Procesamiento rápido de datos en pantalla.
  • Múltiples pestañas.
  • Operaciones de búsqueda y reemplazo rápidas.
  • Una tabla de conversión de datos.
  • Capacidades avanzadas de copiar / pegar.
  • Resaltado de coincidencias de patrones de selección en el archivo.
  • Arquitectura basada en complementos.
  • Exportación de datos a texto y html (otros con complementos).
  • Operaciones bit a bit sobre datos.
  • Un completo manual de usuario.

Puede descargarlo desde aquí: http://packages.debian.org/sid/all/bless/download .

Para instalarlo, consulte ¿Cómo instalo un archivo .deb a través de la línea de comando?

¿Necesitar más?

Radu Rădeanu
fuente
10
La pregunta es pedir un editor de línea de comando.
psusi
1
@psusi No, el OP preguntó acerca de un editor hexadecimal que se puede ejecutar desde shell , no dentro de shell / terminal. Se puede ejecutar desde el shell usando el blesscomando después de que se instala.
Radu Rădeanu
33
No hay nada que no pueda ejecutar desde el shell; no lo habría mencionado a menos que se refiriera a la línea de comando.
psusi
En realidad estaba buscando "ubuntu hex viewer", es decir, un visor basado en ventanas en mente y el sitio de búsqueda me trajo aquí. Entonces esta respuesta fue lo que estaba buscando.
kinORnirvana
2

Prueba hexadecimal , está hecho para usar en scripts y crear archivos.

b.zaar
fuente
2

Este es muy simple de usar:

sudo apt-get install hexcurse
HenryRootTwo
fuente
2

También existe ht. Instalarlo como

sudo apt-get install ht

y luego ejecútalo escribiendo hte.

Sin embargo, no lo he probado con archivos / particiones realmente grandes.

fjflores
fuente