Cacher du texte dans une image par stéganographie

Soyez le premier à donner votre avis sur cette source.

Vue 24 232 fois - Téléchargée 1 959 fois

Description

Cacher du texte dans une image en C#

Je suis tombé tout par hasard sur ce code en delphi crée par aymenk (que vous pouvez trouver à cette adresse : http://www.delphifr.com/code.aspx?ID=32615) et il m'a prit l'envie de le traduire en C#. Je n'ai donc rien inventé en soit, mais simplement traduit cette source. Voilà ce que nous dit l'auteur de la source :

"Voler 1 bit ou 2 pour chaque jeu RGB ne fait de mal à personne et surtout à une image...
Par cette méthode on peut cacher du texte dans une image et récupérer le texte caché."

Si on regarde le code source, on constate que tout tient sur 3 lignes qui sont un peu compliquées (opération sur les bits). Pour mieux comprendre ce qu'il se passe réellement, je vous propose de lire les commentaires sur la source delphi (adresse ci-dessus).

Source / Exemple :


// Insertion
ImgTransform.Include(this.pictureBox.Image as Bitmap, txt);

// Extraction
this.txtInnerText.Text = ImgTransform.Extract(this.pictureBox.Image as Bitmap);

Conclusion :


Petit bug : si on charge une image qui n'est pas un bmp, on peut inclure et extraire du texte sans problème, mais si on sauve l'image, qu'on la recharge et qu'on extrait, le text n'est pas retrouvé. Il doit se produire un problème lors du Save() mais je n'ai pas encore compris de quoi ça venait.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

/dev/null
Messages postés
12
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
14 janvier 2008
-
@sghchafaa:
Foncièrement tu n'a pas tord, on peut même faire mieux avec des streams NTFS. Mais la question n'est pas là. Ta technique ne permet que de copier deux fichier a la suite. Si tu me transfert ce fichier, en moins de 2s je sais qu'il y'a une information dedans, contrairement à la stéganographie.
Si le system est bien conçue (cryptage du contenu et des coordonnées ou commence la stégano, et padding avec des valeur aléatoire non crypté) il faut utilisé un analyser de spectre ou une transformé de fourrier (je sais c'est un peut synonyme ;)) pour pouvoir détecter la simple présence d'un contenue hypothétique. En effet, ce traitement te permettra juste d'extraire le "bruit" ajouter à l'image (qui peut être due a autre chose qu'une stéganographie).
Tu n'auras plus qu'a trouver le point d'entrée, les donné padding, puis peut être la clé de décodage.
Rien a voir au niveaux de la sécurité quoi ^^

Je tien juste a préciser que la chaine étant considérée comme une suite d'octet à encoder, on peut remplacer la String par un byte[] de manière a sténographier ce que l'on désire, voir un fichier exécutable ^^.
sghchafaa
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010
-
Bonjour;

c'ete interessant de suivre la communication pour votre sujet a propos la STEGANOGRAPHIE;;

mais; je pense que c'est trés compliquer d'utiliser que la fomat bmp,non compresser pour benéficier du codage RGB,, tout est expliquer dans le message de "VBSorcier"; et puisque chaque lettre va etre code dans une pixel, alors le longueur de message est limiter au nbr de pixel.
je ne sais pas si j'ai bien exprimer ou si tu m'a compris ou pas,aussi il y on a une autre prob dans votre code,,c'est que le message integrer dans l'image et non-lisible lors de sa recuperation, il est presenter sous forme des caractères illisibles dans le text box.
alors pourkoi supporter tout ses limites,((limite de longueur de message en termes des lettres+limite de format obligatoirement non-compresser pour beneficier de RGB+limite de l'incroyable traitement fait par le micro processeur pour coder le message dans chaque pixel+probleme d'influance sur la qualités d'image+.....infiniment de limites))),,or qu'on peut arriver à la meme résultat par le moindre coût possible...!!!!

eh oui,vous savez la commande copy du MS-DOS,,celle qui sert a copier un fichier/rep de source vers destination,, elle est utiliser aussi pour integrer deux fichier dans un seule,voila un exemple

C:\>copy a.jpeg/b + s.txt/a 012.jpeg

1-un fichier image en format jpeg nommé "a.jpeg",qui sera utiliser pour cacher le texte dedans.
2-un fichier texte nommé "s.txt" qui porte le texte qu'on veut cacher
3-un fichier image nommé "012.jpeg" qui sera génerer automatiquement aprés la validation du commande.

le principe est le suivant:copier(concaténer) un fichier image "a.jpeg" qui suit le codage binaire(/b) dans un fichier texte "s.txt" qui suit le codage ASCII(/a) dans un fichier image nommé "012.jpeg",,tel que tout ces fichier se présentent dans le racine C:\\

et puis pour decoder le contenue du l'image"012.jpeg",il suffit d'un click-glisse de l'image dans un fichier txt vide,et lire les derniers lignes situer dans le fichier text.

voila,on gagne l'espace de stockage des donneés,,la format de l'image utiliser,le taritement de micro processeur,la non influance sur la qualité d'image et LE COMPTE EST BON........

Qu'est ce que tu pense!!!!!!!!
ennixo
Messages postés
224
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
17 juin 2006
-
pour apprendre des trucs en stéganographie je vous conseille http://www.binary-universe.net/
c'est une allemande qui présente ses recherches (code source à l'appui) en stégano.
on y trouve la possibilité de cacher du texte dans des images, de façon simple à très puissante, dans des avi et des gif, mais aussi dans des assembly .net, des fichiers midi, wav ou encore de façon plus folklorique : sur une k7 audio ou dans une liste (en fonction du tri, ce qui peut avoir beaucoup d'applications)
cs_badrbadr
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
-
En informatique, la Stéganographie fonctionne génralement sur des formats qui ne subissent pas de compressions.
Ton programme fonctionne très bien avec le format bmp. Il fonctionnera avec le format gif à condition que tu gères toi-même la palette (en d'autres termes, laisse pas GDI faire).
Finalement, de tels programmes fonctionneront avec les fichiers wav aussi. oubli les mp3 :)

des améliorations que tu pourras ajouter:
- plus on prend de bits par octet, plus l'image est mauvaise et plus on peut stocker de texte. tu devrais permettre à l'utilisateur de régler ces paramètres.
- selon les paramètres, afficher en temps réel le nombre de caractères que l'utilisateur peut saisir.
- tu peux permettre l'affichage des deux versions de l'image, celle qui contient du texte et l'originale.
- crypter le texte selon une paraphrase
- support pour le format gif (très compliquée générer la palette idéal)
Ce sont des idées. Je voulais en faire un comme celui-là mais j'ai jamais eu le temps :)
Bye et bonne continuation
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43 -
Euh, qui a dit que j'avais rien pigé?
Ceci dit, merci pour les explications (tout ce que tu dis se trouve déjà sur le lien que j'ai mentionné mais ça évitera aux gens de devoir aller sur delphifr).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.