cómo editar archivos binarios en los sistemas unix


En la máquina windows hay muchos editores de terceros disponibles para editar un archivo binario. Creo que debería haber algo similar en los sistemas *nix también. ¿alguna idea de cómo puedo editar un archivo binario en unix?

Author: Jonik, 2009-05-08

12 answers

También puede probar ghex2 GNOME utilities. Esto le da el hexadecimal automatizado a ASCII en el lado, así como los diversos caracteres/descodificaciones enteros en la parte inferior. ghex2 http://kmbrandt.googlepages.com/hexeditor.jpg

 37
Author: Shannon Nelson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-09 04:34:56

En vim puede escribir :%!xxd para convertirlo en un editor hexadecimal. :%!xxd-r para volver al modo normal. xxd se envía en una instalación vim.

Vea aquí para algunas observaciones sobre la edición de archivos binarios con vim (se reduce a : establezca binario para evitar problemas, use solo el comando "R" o "r" para cambiar el texto, no elimine caracteres).

Si eres fan de Emacs, consulta aquí para obtener una guía sobre cómo editar un archivo binario con Emacs.

 99
Author: Paweł Polewicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-02 15:25:57

Hay muchos más hexeditores en Linux/Unix....

Uso hexedit en Ubuntu

sudo apt-get install hexedit
 15
Author: Osama Al-Maadeed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-09 15:35:01

Puedes consultar wikipedia.

Prefiero BIEW, especialmente.

 10
Author: Francis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-08 10:38:07

Bless es un editor hexadecimal de alta calidad y con todas las funciones.

Está escrito en mono/Gtk# y su plataforma principal es GNU/Linux. Sin embargo, debería poder ejecutarse sin problemas en todas las plataformas que mono y Gtk# ejecuten. Características Principales Bless actualmente proporciona las siguientes características:

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

Copiado de http://home.gna.org/bless/

 8
Author: Brad Gilbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-08 13:15:17

Solía usar bvi.

Estoy desarrollando hexvi para superar las limitaciones de :%!xxd y bvi.

Hexvi

Características

  • combinaciones de teclas y comandos similares a vim
  • ir a compensaciones específicas
  • insertar, reemplazar, eliminar
  • buscando cosas (PCRE regexes)
  • todo es un comando, y se puede mapear en hexvirc
  • esquemas de color
  • soporte para archivos grandes
  • soporte para múltiples archivos (a través de pestañas)
  • Python por lo que el nivel de entrada para hackear alrededor debe ser inferior a C
  • CLI hasta el final

Cons

  • a partir de marzo de 2016, es alfa, por lo que faltan características, pero estoy trabajando en ellas:
    • guardar archivo
    • deshacer / rehacer
    • historial de comandos
    • selección visual
    • página de manual
  • no autocompletar

Bvi

Características

  • combinaciones de teclas y comandos similares a vim
  • ir a compensaciones específicas
  • insertar, eliminar, reemplazar
  • buscando cosas (texto y hexadecimal)
  • deshacer / rehacer
  • CLI hasta el final

Cons

  • con respecto a sus capacidades vim - desafortunadamente, entiende solo lo más cosas básicas y definitivamente necesita más amor en este sentido (ejemplo: no entender :wq, pero entender :w y :q)
  • no hay soporte de selección visual en absoluto
  • sin soporte de tabulación/pantalla dividida
  • se bloquea a menudo
  • no hay soporte para archivos grandes
  • sin historial de comandos
  • sin autocompletar
 5
Author: rr-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-24 21:59:57

Me gusta KHexEdit, que es parte de KDE

Su interfaz de usuario "estilo Windows" es probablemente bastante rápida de aprender para la mayoría de la gente (en comparación con Vim o Emacs de todos modos:)

 3
Author: Jonik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-18 17:06:07

Hay un editor binario ligero, marque hexedit. http://www.linux.org/apps/AppId_6968.html . Intenté usarlo para editar binarios ELF en Linux al menos.

 2
Author: setzamora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-08 10:46:55

Hice wxHexEditor, es de código abierto, escrito con C++/wxWidgets GUI libs y puede abrir incluso su disco de tamaño exabyte!

Http://wxhexeditor.sf.net

Solo inténtalo.

 2
Author: E.U.A.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-20 20:36:24

Como variante, puede usar radare2 :

> r2 -w /usr/bin/ls

[0x004049d0]>V

[0x004049d0 14% 1104 (0x0:-1=1)]> x @ entry0
- offset - | 0 1  2 3  4 5  6 7  8 9  A B  C D  E F| 0123456789ABCDEF
0x004049d0 |31ed 4989 d15e 4889 e248 83e4 f050 5449| 1.I..^H..H...PTI
0x004049e0 |c7c0 103a 4100 48c7 c1a0 3941 0048 c7c7| ...:A.H...9A.H..
0x004049f0 |202a 4000 e877 dcff fff4 660f 1f44 0000|  *@..w....f..D..
0x00404a00 |b807 e661 0055 482d 00e6 6100 4883 f80e| ...a.UH-..a.H...
0x00404a10 |4889 e576 1bb8 0000 0000 4885 c074 115d| H..v......H..t.]
0x00404a20 |bf00 e661 00ff e066 0f1f 8400 0000 0000| ...a...f........
0x00404a30 |5dc3 0f1f 4000 662e 0f1f 8400 0000 0000| ][email protected].........
0x00404a40 |be00 e661 0055 4881 ee00 e661 0048 c1fe| ...a.UH....a.H..
0x00404a50 |0348 89e5 4889 f048 c1e8 3f48 01c6 48d1| .H..H..H..?H..H.
0x00404a60 |fe74 15b8 0000 0000 4885 c074 0b5d bf00| .t......H..t.]..
0x00404a70 |e661 00ff e00f 1f00 5dc3 660f 1f44 0000| .a......].f..D..
0x00404a80 |803d c19b 2100 0075 1155 4889 e5e8 6eff| .=..!..u.UH...n.
0x00404a90 |ffff 5dc6 05ae 9b21 0001 f3c3 0f1f 4000| ..]....!......@.
0x00404aa0 |bf10 de61 0048 833f 0075 05eb 930f 1f00| ...a.H.?.u......
0x00404ab0 |b800 0000 0048 85c0 74f1 5548 89e5 ffd0| .....H..t.UH....
0x00404ac0 |5de9 7aff ffff 662e 0f1f 8400 0000 0000| ].z...f.........
0x00404ad0 |488b 0731 d248 f7f6 4889 d0c3 0f1f 4000| H..1.H..H.....@.

Para obtener detalles sobre cómo funciona en modo visual, puede leer aquí

 2
Author: AndreyT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-29 13:50:22

Para pequeños cambios, he usado hexedit:

Http://rigaux.org/hexedit.html

Simple pero rápido y útil.

 1
Author: bitozoid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-08 15:49:44

He tenido una buena experiencia con wxHexEditor... solo asegúrese de que si está editando un disco hexadecimal lo haga a través del menú

Devices -> Open Disk Device -> SCSI Disk Drive Partition #_N_
 1
Author: asdf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-26 10:09:10