linux - okteta - Cómo editar archivos binarios en los sistemas Unix
bless hex editor (12)
Bless es un editor hexadecimal de alta calidad 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 cada plataforma que ejecutan mono y Gtk #. Características principales Bless actualmente ofrece las siguientes características:
- Edición eficiente de archivos de datos grandes y dispositivos de bloque.
- Operaciones de deshacer - rehacer multinivel.
- Vistas de datos personalizables.
- Rápida representación de datos en la pantalla.
- Múltiples pestañas.
- Búsqueda rápida y reemplazo de operaciones.
- Una tabla de conversión de datos.
- Capacidades avanzadas de copiar / pegar.
- Resaltar el patrón de selección coincide en el archivo.
- Arquitectura basada en complementos
- Exportación de datos a texto y html (otros con complementos).
- Operaciones bit a bit en datos.
- Un manual de usuario completo.
En la máquina de Windows hay muchos editores de terceros disponibles para editar un archivo binario. Creo que debería haber algo de simulación en los sistemas * nix también. ¿Alguna idea de cómo puedo editar un archivo binario en Unix?
Como variante, puedes 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 detalles sobre cómo trabajar en modo visual puedes leer here
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 here algunos comentarios sobre la edición de archivos binarios con vim (se reduce a : establecer el binario para evitar problemas, use solo el comando "R" o "r" para cambiar el texto, no elimine los caracteres).
Si usted es un fan de Emacs, consulte here para obtener una guía sobre cómo editar un archivo binario con Emacs.
Hay muchos más hexeditores en Linux / Unix ....
Yo uso hexedit en Ubuntu
sudo apt-get install hexedit
Hay un editor binario liviano, verifique hexedit. http://www.linux.org/apps/AppId_6968.html . Intenté usarlo para editar binarios ELF en Linux al menos.
He tenido una buena experiencia con wxHexEditor ... solo asegúrate de que si estás editando hexadecimadamente un disco, lo haces a través del menú
Devices -> Open Disk Device -> SCSI Disk Drive Partition #_N_
Hice wxHexEditor, es de código abierto, escrito con libs de GUI de C ++ / wxWidgets y puede abrir incluso su disco de tamaño exabyte!
Sólo inténtalo.
Me gusta KHexEdit , que es parte de KDE
Su interfaz de usuario de "estilo de Windows" probablemente sea bastante rápida de aprender para la mayoría de las personas (en comparación con Vim o Emacs de todos modos :)
Solía usar bvi .
Estoy desarrollando hexvi para superar :%!xxd
y las limitaciones de bvi
.
hexvi
Caracteristicas
- combinaciones de teclas y comandos vim-like
- ir a compensaciones específicas
- insertar, reemplazar, eliminar
- buscando cosas (expresiones elementales de PCRE)
- 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 piratear debe ser menor que C
- CLI de principio a fin
Contras
- a partir de marzo de 2016, es alfa, por lo que faltan funciones, pero estoy trabajando en eso:
- archivo de ahorro
- deshacer rehacer
- historia de comando
- selección visual
- página man
- sin autocompletar
bvi
Caracteristicas
- combinaciones de teclas y comandos vim-like
- ir a compensaciones específicas
- insertando, borrando, reemplazando
- buscando cosas (texto y hex)
- deshacer rehacer
- CLI de principio a fin
Contras
- con respecto a sus capacidades vim, lamentablemente, solo entiende las cosas más básicas y definitivamente necesita más amor en este sentido (ejemplo: no comprende
:wq
, pero entiende:w
y:q
) - no hay soporte de selección visual en absoluto
- sin pestaña / soporte de pantalla dividida
- cuelga a menudo
- no es compatible con archivos de gran tamaño
- sin historial de comandos
- sin autocompletar
También puede probar las utilidades GNOME de ghex2. Esto le da el hexadecimal a ASCII automatizado en el lado, así como también las decodificaciones de varios caracteres / enteros en la parte inferior. ghex2 http://kmbrandt.googlepages.com/hexeditor.jpg