Steganographie, bitmap et offset

Signaler
Messages postés
1
Date d'inscription
vendredi 5 août 2011
Statut
Membre
Dernière intervention
5 août 2011
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
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

Messages postés
14871
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 novembre 2020
93
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...
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
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