Une fois toutes les 5 minutes

Utiliser les commandes hexedit et xxd pour visualiser et modifier les fichiers binaires.

Vous pouvez installer hexedit, un éditeur de fichiers du système Linux. Il permet de visualiser le contenu des fichiers binaires et d'y apporter des modifications.

Avec hexedit, vous pouvez éditer des images, des exécutables et d'autres fichiers binaires. Cependant, vous devez connaître parfaitement le format du fichier que vous éditez afin d'apporter des modifications efficaces qui ne brisent pas le format du fichier. Après tout, vous modifiez un octet à la fois. Cela ne signifie pas que vous ne pouvez pas utiliser cette commande pour visualiser ou éditer des fichiers texte. Il n'y a que peu ou pas de raison de le faire.

Utiliser hexedit

Malgré le commentaire ci-dessus sur les fichiers texte, l'exemple suivant utilise hexedit pour visualiser/modifier un fichier texte, mais uniquement pour illustrer la façon dont la commande affiche le contenu du fichier et pour suggérer une façon simple de s'habituer au fonctionnement d'hexedit.Passerelle informatique périphérique

$ hexedit myfile.txt

00000000 54 68 69 73 20 69 73 20 61 20 74 65 78 74 20 66 Il s'agit d'un texte f

00000010 69 6C 65 20 74 68 61 74 20 49 20 63 72 65 61 74 ile que je crée

00000020 65 64 20 75 73 69 6E 67 20 76 69 20 6F 6E 20 6D ed using vi on m

00000030 79 20 4C 69 6E 75 78 20 73 79 73 74 65 6D 2E 0A y Système Linux .

00000040 49 74 20 63 6F 6E 74 61 69 6E 73 20 6F 6E 6C 79 Il contient uniquement

00000050 20 61 20 66 65 77 20 6C 69 6E 65 73 20 6F 66 20 quelques lignes de

00000060 74 65 78 74 2E 0A 54 68 65 20 45 6E 64 21 0A texte...La fin !.

Commandes hexedit et xxd de DTU/Edge Gateway/IoT Platform/Gateway Module/Linux

L'affichage ci-dessus montre qu'une nouvelle ligne ("0A" dans la sortie hexadécimale) apparaît comme un point dans le texte de droite. Chaque segment supplémentaire de 2 octets affiché entre le numéro de ligne (hexadécimal) à gauche et le texte à droite représente un caractère. Par exemple, les quatre chaînes de deux octets (54 68 69 73) à gauche de la première ligne de texte correspondent au mot "Ceci" affiché à droite. Si vous souhaitez remplacer ce mot par "Cela", vous pouvez appuyer sur la touche fléchée vers la droite pour atteindre 9 et taper "1", puis appuyer à nouveau sur la touche vers la droite pour atteindre 3 et taper "4". Le texte affiché à droite sera modifié en conséquence.

Vous pouvez utiliser ^s pour rechercher des octets spécifiques. Il vous sera demandé d'entrer ce que vous voulez rechercher. Si vous souhaitez enregistrer les modifications, quittez avec ^x et répondez par "y". Appuyez sur la touche fléchée vers le bas et maintenez-la enfoncée pour faire défiler la ligne de données vers le bas.

Le déplacement au sein d'un fichier binaire fonctionne de la même manière, mais vous devez comprendre quelles parties du fichier vous pouvez modifier sans casser le format du fichier.

Les fichiers exécutables commencent généralement par quelque chose comme ceci :

00000000 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 00 .ELF............

00000010 03 00 3E 00 01 00 00 00 10 6B 00 00 00 00 00 ..>......k......

00000020 40 00 00 00 00 00 00 00 40 22 02 00 00 00 00 00 @…..@”……

00000030 00 00 00 00 40 00 38 00 0D 00 40 00 1F 00 1E 00 ....@.8...@.....

00000040 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00 ……..@…….

00000050 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 @…..@…..

00000060 D8 02 00 00 00 00 00 D8 02 00 00 00 00 00 ............

00000070 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 …………

Le sigle ELF sur la première ligne à droite de . identifie ce fichier comme un fichier ELF. ELF est la norme universelle pour les fichiers exécutables, mais le contenu ne sera pas du texte lisible ; il s'agira d'un code compilé. Si vous modifiez quoi que ce soit dans ce fichier, il y a de fortes chances qu'il ne s'exécute plus correctement et qu'il provoque une erreur de segmentation.

La commande hexedit est parfois utilisée dans les enquêtes sur la cybercriminalité, car rien n'est caché à l'observateur, ce qui permet de trouver des logiciels malveillants intégrés, etc. Cependant, il est utile de savoir ce que l'on cherche et où l'on peut trouver ces données. Il est toujours conseillé de sauvegarder les fichiers que vous envisagez de modifier afin de pouvoir les restaurer facilement en cas de besoin.

La page de manuel de la commande hexedit décrit comment se déplacer dans les fichiers, quitter sans sauvegarder les modifications, effectuer des recherches et d'autres opérations. Une fois que vous savez quelles modifications sont valables, il est très facile de se déplacer dans le fichier et d'effectuer des modifications.

Révéler les secrets du réseau NB/hexedit

Utiliser xxd

La commande xxd vous permet de créer un fichier hexadécimal à partir d'un fichier. En d'autres termes, vous obtenez essentiellement la même sortie que hexedit, mais xxd ne fait qu'afficher la sortie. Elle ne permet pas d'éditer le contenu du fichier. Dans l'exemple ci-dessous, nous utilisons xxd pour afficher le contenu hexadécimal en haut d'un fichier jpg ainsi que les traductions hexadécimales disponibles. Vous remarquerez que l'image en question semble avoir été créée à l'aide de Photoshop.

$xxd micro.jpg | tête

00000000 : ffd8 ffe0 0010 4a46 4946 0001 0100 0048......JFIF.....H

00000010 : 0048 0000 ffe1 004c 4578 6966 0000 4d4d .H....LExif..MM

00000020 : 002a 0000 0008 0001 8769 0004 0000 0001 .*.......i......

00000030 : 0000 001a 0000 0000 0003 a001 0003 0000 ............

00000040 : 0001 0001 0000 a002 0004 0000 0001 0000 ............

00000050 : 002a a003 0004 0000 0001 0000 0036 0000 .*.......6...

00000060 : 0000 ffed 0038 5068 6f74 6f73 686f 7020 .....8Photoshop

00000070 : 332e 3000 3842 494d 0404 0000 0000 0000 3.0.8BIM.....

00000080 : 3842 494d 0425 0000 0000 0010 d41d 8cd9 8BIM.%.....

00000090 : 8f00 b204 e980 0998 ecf8 427e ffc0 0011 .....B~....

Vous pouvez également rediriger la sortie de la commande xxd vers un fichier en vue d'une analyse ultérieure.

$xxd micro.jpg > micro.txt

$ headmicro.txt

00000000 : ffd8 ffe0 0010 4a46 4946 0001 0100 0048......JFIF.....H

00000010 : 0048 0000 ffe1 004c 4578 6966 0000 4d4d .H....LExif..MM

00000020 : 002a 0000 0008 0001 8769 0004 0000 0001 .*.......i......

00000030 : 0000 001a 0000 0000 0003 a001 0003 0000 ............

00000040 : 0001 0001 0000 a002 0004 0000 0001 0000 ............

00000050 : 002a a003 0004 0000 0001 0000 0036 0000 .*.......6...

00000060 : 0000 ffed 0038 5068 6f74 6f73 686f 7020 .....8Photoshop

00000070 : 332e 3000 3842 494d 0404 0000 0000 0000 3.0.8BIM.....

00000080 : 3842 494d 0425 0000 0000 0010 d41d 8cd9 8BIM.%.....

00000090 : 8f00 b204 e980 0998 ecf8 427e ffc0 0011 .....B~....

Notez que hexedit utilise des lettres majuscules dans ses caractères hexadécimaux, alors que xxd utilise des lettres minuscules et affiche la valeur par blocs de quatre octets au lieu de deux octets.

Résumer

La commande hexedit permet d'afficher le contenu des fichiers binaires (images, exécutables, etc.) et la commande xxd permet d'afficher et d'enregistrer le contenu de ces fichiers en vue d'une analyse ultérieure dans le format indiqué ci-dessus.

 

Nous contacter