Ignorer la navigation

III. Analyse de notre stéganographie

Nous allons maintenant comprendre comment fonctionne la stéganographie mise en œuvre par notre logiciel « steganooff.exe ».

 

Il faut savoir que les caractères du clavier (et même d’autres) possèdent chacun un code sur 8 bits (octet) définit par une table normalisée, la table ASCII :

Ainsi la lettre M (m majuscule) est représentée par le code hexadécimal 4D (0100 1101 en binaire), la lettre p par le code hexadécimal 70, ….

 

Notre application « steganooff.exe » permet de dissimuler un fichier texte (en fait une suite de codes ASCII) dans un fichier image de type BMP. Dans l’exemple ci-après, on est parti du fichier « TEXTE.txt » (qui contient « BONJOUR ») que l’on va dissimuler dans l’image « Futur.bmp » qui deviendra alors « STEGANO.bmp »

 
Regardons maintenant le contenu des 3 fichiers (enfin seulement le début des 2 fichiers images car ils sont très volumineux !). Nous allons utiliser l’éditeur hexadécimal « HxD_hex_editor » (éditeur qui permet de voir un fichier numérique en affichant le code binaire non par une suite de 0 ou 1 mais par groupe d’octets, c’est à dire 8 bits regroupés et affichés en hexadécimal).

Voici les 3 fichiers :

 

On remarque :

  • L'Entête du fichier "Futur.bmp" n'a pas été modifié. (zone bleue)
  • Une partie de la zone de définition de l'image a été modifiée (zone rose clair)
  • Dans la partie modifiée, seul le chiffre de poids faible de l'octet a été modifié.
  • Chaque octet du fichier "TEXTE.txt" a été écrit dans le fichier "Futur.bmp" en remplaçant les chiffres de poids faible de deux octets consécutifs par ceux de l'octet à cacher.

Si on décode la première partie de la zone modifiée (paramètres dissimulés) , en ne prenant que les poids faibles, on trouve:

 

Ce qui donne: S T E G 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 T E X T E . t x t

 
Interprétation:

  • Ch1= STEG pour signaler que ce fichier contient un autre fichier caché.
  • Ch2= 00000007h Nb d'octets cachés ( ici les 7 octets du fichier TEXTE.txt : « BONJOUR »)
  • Ch3= 00000009h Nb de caractères du nom du fichier (ici les 9 caractères de TEXTE.txt)
  • Ch4= 00000000h Nb d'octets séparant deux octets modifiés (ici aucun)
  • Ch5= TEXTE.txt Nom du fichier caché.

 

Dans la seconde partie modifiée :

Le fichier TEXTE.txt (42 4F 4E 4A 4F 55 52) se retrouve dans les poids faibles des 14 octets qui suivent 2C 36 30 31 39 33 34 34 34 35 39 33 34 35 qui deviennent 24 32 34 3F 34 3E 34 3A 34 3F 35 35 35 32.

 

Quelques questions pour voir si vous avez bien compris :

1. En tête du fichier « TEXTE.txt » on relève 42 puis 4F. Que représentent ces 2 octets ?

2. Quels octets (en Hexa) aurions nous eu dans le fichier « TEXTE.txt » si le texte avait été « bonjour » au lieu de « BONJOUR »

3. Écrivez les 14 octets modifiés de l’image avec le texte « bonjour » au lieu de « BONJOUR »

 

 
Maintenant que l’on a compris le principe on va travailler sur nos fichiers :

  • tpsteganno.txt (fichier du texte rajouté)
  • LaMache_original.bmp (image d’origine)
  • LaMache_modifié.bmp (image contenant le texte caché)

 

4. Ouvrez le fichier tpsteganno.txt avec l’éditeur hexadécimal « HxD_hex_editor » (si celui-ci n’est pas installé, installez le à partir du fichier d’installation fourni), et recopiez le code binaire obtenu (sous forme d’octets héxadécimaux)

 

 
Ouvrez maintenant les 2 fichiers images (LaMache_original.bmp et LaMache_modifié.bmp) avec l’éditeur hexadécimal.


5. A partir de quel endroit le fichier est-il modifié? (vous donnerez les coordonnées en x et y, par exemple le premier octet de la 2ème ligne est noté 10,00)

6. Que se passe-t-il à partir de l’octet 80,02 (comparez les 2 fichiers images).

7. Recopiez tous les poids faibles des octets modifiés en les regroupant par 2 chiffres (octet de départ reconstitué)

8. Décomposez ce que vous avez obtenu pour retrouver et expliquer toutes les infos intégrées au fichier

53 54 45 47 = STEG signifie que le fichier contient un texte caché
00 00 00 08 = .........................................................................
..   ..   ..  ..    = .........................................................................
..   ..   ..  ..    = .........................................................................
..   ..   ..  ..  ..   ..   ..  ..  ..   ..   ..  ..  ..  .. = .........................................................................
..   ..   ..  ..  ..   ..   ..  ..   = .........................................................................