Steganographie, bitmap et offset

1 post / 0 new
Heisen
Steganographie, bitmap et offset

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.. :mrgreen: ° )

Heisen