La commande XXD
La commande xxd permet de convertir du binaire en hexadécimal et inversement. Elle permet aussi de patcher un fichier binaire. Utilisé avec vi ou vim, xxd permet de disposer d’un éditeur hexadécimal de fortune en mode commande. Enfin, cet outil permet d’afficher au format binaire.Afficher la représentation binaire d’octets
Avec echo
$ echo -n 5C00FF | xxd -r -p | xxd -b
0000000: 01011100
00000000 11111111
\...
$ xxd -b bin
0000000: 01011100 00000000 11111111 \...
Edition hexadécimale
Il est possible d'utiliser vi ou vim comme éditeur héxadécimal (grâce à xxd)
Pour passer en mode éditeur hexadécimal, entrez <esc> puis :%!xxd
Pour revenir au mode initial <esc>:%!xxd -r
Patcher un fichier binaire
Pour patcher un binaire, il suffit de passer en mode édition hexadécimal puis d’ajouter, supprimer ou modifier les valeurs sur la partie hexadécimale uniquement (à gauche). La modification sur la partie ASCII n’est pas prise en compte. Ensuite il faut soit :
- sauvegarder soit dans un fichier externe (sans sauvegarder le fichier courant car le buffer de vi est vidé)
- sauvegarder le fichier courant par une conversion au format initial puis en enregistrant normalement le fichier courant
Depuis l’édition hexadécimale, la modification du fichier s’opère sur la partie hexadécimale uniquement avec <esc>:%!xxd
Le mode insertion de vi <esc>i permet de modifier le fichier, dans l’exemple ci-dessous, la séquence 46494c45 remplace 36393c35.
Pour enregistrer dans un fichier externe, il faut saisir <esc>:%!xdd –r > newfile, mais cela vide le buffer courant de vi.
Dans ce cas, pour conserver le fichier initial intact, il faut sortir sans enregistrer le fichier avec <esc>:q!
Voici le résultat du fichier patché dans un nouveau fichier
Pour patcher directement le fichier lui-même, il suffit de reconvertir l’édition en cours : <esc> %!xxd –r puis de sauvegarder :wq.
Edition et modification
Conversion du mode d’édition :% !xxd -r
Sauvegarde :wq
Le fichier txt est patché
Aucun commentaire:
Enregistrer un commentaire