Steganographie, bitmap et offset

Heisen Messages postés 1 Date d'inscription vendredi 5 août 2011 Statut Membre Dernière intervention 5 août 2011 - 5 août 2011 à 02:10
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 20 août 2011 à 11:51
Bonjour à tous,

désirant coder mon propre logiciel de stéganographie, avec lequel il serait possible de cacher un message dans une image (méthode Least Significant Bit), je souhaiterais savoir s'il est possible en C via un appel-système ou autres de connaître les différentes caractéristiques des fichiers images devant contenir les messages cachés. Dans un premier temps, seul le format bitmap (bmp) est accepté pour les images.

Avant toutes choses, j'ai voulu tester manuellement la méthode LSB: j'ai donc édité un fichier bmp en modifiant (ou non) le bit de poids faible de chaque octet en fonction du message à cacher. Il s'est avéré qu'une modification intempestive et incontrôlée de ce genre a corrompu le fichier (écrasement de certains bits du/des en-tête(s) du fichier), devenu illisible. J'en ai donc conclu qu'une méthode telle que LSB était valable à condition que seuls les octets correspondant aux pixels de l'image puissent être modifiés.

Ainsi, après plusieurs analyses de différents fichiers bmp et quelques recherches sur la toile, j'ai pu observer que l'offset de l'image (i.e. l'adresse du 1er octet correspondant au 1er pixel de l'image) est donné dans l'en-tête du fichier, codé sur 4 octets (les octets 10, 11, 12 et 13 de l'en-tête du fichier).

J'ai donc voulu, en utilisant des fonctions/appels-systèmes comme open(), read(), lseek() et quelques buffers, extraire 'manuellement' l'offset de l'image et positionner le curseur du fichier bmp sur le 1er octet correspondant au 1er pixel, afin de pouvoir masquer le message sans endommager le fichier. Après quelques heures de réflexion, cette entreprise m'apparait plus laborieuse qu'efficace.

Je souhaiterais donc savoir s'il existe un moyen plus propre et plus efficace concernant l'extraction de l'offset et le positionnement du curseur.


Par ailleurs, étant un jeune disciple de la stéganographie (et de l'informatique en général) mais plutôt passioné, tous les bon tuyaux m'intéressent. On en apprend tous les jours, tous vos conseils sont les bienvenus (qu'ils portent ou pas sur le sujet du topic) .


Merci à tous pour votre attention et votre patience (long message.. )


Heisen

2 réponses

BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
5 août 2011 à 09:08
Hello,
Effectivement, comme tu l'as remarqué à tes dépends, on ne modifie pas un fichier n'importe comment.
Pour en savoir plus sur la structure d'un fichier BMP, je te propose ma source


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2011 à 11:51
Bonjour,

Il s'agit (la plupart du temps) de ne pas toucher au header : les informations des headers des fichiers ont une influence beaucoup plus grosse sur le contenu que les informations qui suivent (en général)

Certains formats sont beaucoup plus difficiles que d'autres pour minimiser l'impact des modifications sur l'image, le son ou la vidéo, mais pour le bmp, c'est très simple.

Cordialement,

Maxime
0
Rejoignez-nous