web-dev-qa-db-fra.com

comment éditer un fichier binaire sur les systèmes Unix

Sur la machine Windows, de nombreux éditeurs tiers sont disponibles pour éditer un fichier binaire. Je pense qu'il devrait y avoir quelque chose de similaire dans les systèmes * nix. aucune idée de comment puis-je éditer un fichier binaire sous Unix?

59
Hemant

Vous pouvez également essayer les utilitaires ghex2 GNOME. Cela vous donne le côté hexa-ASCII automatisé sur le côté, ainsi que les différents décodages de caractères/nombres entiers en bas. ghex2
(source: googlepages.com )

39
Shannon Nelson

Dans vim Vous pouvez taper :%! Xxd pour le transformer en éditeur de texte. :%! xxd -r pour revenir au mode normal. xxd est expédié dans une installation de vim.

Voir ici pour quelques remarques sur la modification de fichiers binaires avec vim (se réduit à : définissez binaire pour éviter tout problème, utilisez uniquement le "R" ou "r" pour changer le texte, ne pas supprimer les caractères).

Si vous êtes un fan d'Emacs, voyez here pour un guide sur la façon de modifier un fichier binaire avec Emacs.

106
Paweł Polewicz

Il y a beaucoup plus d'hexeditors sur Linux/Unix ....

J'utilise hexedit sur Ubuntu

Sudo apt-get install hexedit
15

vous pouvez vérifier wikipedia .

Je préfère BIEW en particulier.

10
Francis

Bless est un éditeur hexadécimal de haute qualité.

Il est écrit en mono/Gtk # et sa plate-forme principale est GNU/Linux. Cependant, il devrait pouvoir fonctionner sans problème sur toutes les plates-formes mono et Gtk #. Fonctionnalités principales Bless fournit actuellement les fonctionnalités suivantes:

  • Edition efficace de gros fichiers de données et de blocs de périphériques.
  • Annulation multiniveau - opérations répétées.
  • Vues de données personnalisables.
  • Rendu rapide des données à l'écran.
  • Plusieurs onglets.
  • Recherche rapide et remplacement des opérations.
  • Une table de conversion de données.
  • Fonctionnalités avancées de copier/coller.
  • La mise en surbrillance des motifs de sélection correspond dans le fichier.
  • Architecture à base de plugin.
  • Exportation de données en texte et en HTML (autres avec des plugins).
  • Opérations binaires sur les données.
  • Un manuel utilisateur complet.

copié de http://home.gna.org/bless/

8
Brad Gilbert

J'avais l'habitude d'utiliser bvi .

Je développe hexvi pour surmonter :%!xxd et bvi limitations de.

hexvi

Traits

  • raccourcis clavier et commandes de type vim
  • aller à des compensations spécifiques
  • insertion, remplacement, suppression
  • recherche de choses (regex PCRE)
  • tout est une commande et peut être mappé dans hexvirc
  • schémas de couleurs
  • support pour les gros fichiers
  • support pour plusieurs fichiers (via des onglets)
  • Python donc le niveau d'entrée à pirater devrait être plus bas que C
  • CLI à travers et à travers

Les inconvénients

  • à partir de mars 2016, l'alpha manque donc certaines fonctionnalités, mais je travaille sur celles-ci:
    • sauvegarde de fichier
    • défaire refaire
    • historique des commandes
    • sélection visuelle
    • man page
  • non autocomplete

bvi

Traits

  • raccourcis clavier et commandes de type vim
  • aller à des compensations spécifiques
  • insertion, suppression, remplacement
  • chercher des trucs (texte et hex)
  • défaire refaire
  • CLI à travers et à travers

Les inconvénients

  • en ce qui concerne ses capacités vim - malheureusement, il ne comprend que les choses les plus élémentaires et a certainement besoin de plus d’amour à cet égard (exemple: ne comprend pas :wq, mais comprend :w et :q)
  • aucun support de sélection visuel que ce soit
  • pas de support onglet/écran partagé
  • se bloque souvent
  • pas de support pour les gros fichiers
  • pas d'historique de commandes
  • non autocomplete
5
rr-

J'aime KHexEdit , qui fait partie de KDE

Son interface "style Windows" est probablement assez rapide à apprendre pour la plupart des gens (comparé à Vim ou à Emacs de toute façon :)

3
Jonik

Il existe un éditeur binaire léger, vérifiez hexedit. http://www.linux.org/apps/AppId_6968.html . J'ai essayé de l'utiliser pour l'édition de binaires ELF sous Linux au moins.

2
setzamora

En variante, vous pouvez utiliser 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.....@.

Pour plus de détails sur le fonctionnement en mode visuel, vous pouvez lire here

2
AndreyT

J'ai créé wxHexEditor, il est à source ouverte, écrit avec des bibliothèques d'interface graphique C++/wxWidgets et peut même ouvrir votre disque de la taille d'un exaoctet!

http://wxhexeditor.sf.net

Essayez juste.

2
E.U.A.

Pour de petites modifications, j'ai utilisé hexedit:

http://rigaux.org/hexedit.html

Simple mais rapide et utile.

1
bitozoid

J'ai une bonne expérience avec wxHexEditor ... assurez-vous simplement que si vous modifiez un lecteur de disque dur, vous le faites via le menu.

Devices -> Open Disk Device -> SCSI Disk Drive Partition #_N_
1
asdf