DIGNE D'UN AGENT SECRET : CACHEZ VOS TEXTES OU FICHIERS DANS DE BANALES IMAGES.

cs_JcDuss Messages postés 37 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 23 avril 2004 - 25 août 2003 à 19:08
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004 - 28 août 2003 à 20:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8341-digne-d-un-agent-secret-cachez-vos-textes-ou-fichiers-dans-de-banales-images

CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
28 août 2003 à 20:57
Je ne suis pas sûr de bien comprendre ce que tu dis...
En effet on peut cacher un fichier ou un texte, mais pas deux à la fois (pas encore...). Et la taille du codage n'est pas variable : elle est bel est bien fixée à 8 bits sur 24.
Mon message précédent n'était qu'une réflexion purement théorique sur les limites de ce système, sans lien avec la version actuelle de mon programme.
Pour le PNG effectivement c'est possible.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
28 août 2003 à 20:17
mmh, d'après ce que tu dis, et vu l'algo que tu utilises, on peux "cacher" un fichier d'une certaine taille dans l'image, et on peut encore cacher un deuxième fichier de très petite taille (en stockant 1 bit sur 24 bits) comme par exemple un texte court.... ca me fais penser que si on compresse l'image en png 24bits, les infos du fichier caché seront conservé, lol :)
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
28 août 2003 à 10:42
J'en profite juste pour corriger une énormité que j'ai dite : il ne faut pas doubler mais élever au carré la plage de valeurs permises pour obtenir une capacité de stockage deux fois plus grande. Et là ça devient vraiment trop. De toute façon, sachez que la limite théorique de stockage est la taille de l'image elle-même (en fait un peu moins...), et cette capacité n'est atteignable qu'avec une image toute noire ou toute blanche. Avec une image quelconque la capacité maximale, en déformant l'originale au maximum, est de 7/8 de la taille de l'image. Et si l'on veut garder des images à peu près similaires, la capacité maximale stockable est de 1/2 de la taille de l'image originale. Faut pas rêver, y'a pas de miracles possibles.
cs_seif Messages postés 36 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 8 septembre 2003
28 août 2003 à 05:55
j'ai rien a dire tres bien
'aimerai un jour programmer des chose comme ça
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
27 août 2003 à 16:07
Tu veux que je te dise un truc : t pas bête, toi ! Je pense qu'avec ça, en effet, la lecture/écriture d'1 Mo de données sera quasi-instantanée. Je le ferais quand j'aurais le temps, et encore merci de tes conseils avisés.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
27 août 2003 à 14:22
pourquoi s'embêter avec directx ou même getpixel ? travaille directement en binaire avec les fichiers bitmap (le format bitmap 24bits n'est pas très compliqué a lire avec les fonctions open binary, get # et put # ...)
comme ça ya plus besoin de décomposer le rgb! tu lit byte par byte le fichier, tu "l'encodes" via tes routines, puis tu écrits directement le résultat dans un fichier "format bitmap" ... ensuite tu ferme le fichier et hop un petit loadpicture() et c fini !
des infos sur le format bitmap : www.wotsit.org ou alors tu m'écris que je t'envois des infos en private :)
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
27 août 2003 à 11:43
Bon, allez, je suis trop bon mais enfin... J'ai vérifié, et le problème ne vient pas des get/setpixel, mais bien du traitement que j'en fais (décomposition RGB...). A votre avis, les méthodes DirectX de décomposition sont-elles plus efficaces ? Dans ce cas là je pourrais les utiliser, voire lire/écrire dans le fichier avec DirectDraw. Peut-être le ferais-je dans quelques semaines, mais là j'ai vraiment pas le temps ! Au fait, j'ai oublié de décommenter la ligne "On error goto..." dans le command6_click. Cela permet de vérifiier que les images se correspondent bien, alors enlevez juste le petit ' devant.
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
27 août 2003 à 11:29
Je pense qu'il suffirait d'altérer un peu plus l'image (doubler les plages de valeurs de modification) pour doubler du même coup la capacité de codage. J'ai jamais testé, alors je peux pas vous dire à partir de quelles valeurs ça commence à se voir. Désolé mais avec la rentrée qui approche j'ai pas vraiment le temps d'optimiser ça alors si vous voulez le faire vous même, y'a pas de prob... Pour la clé, je sais pas... Avec la stéganographie (merci proger de m'avoir apris ce mot !), il n'y a qu'une image mais ici c'est l'originale qui tient lieu de clé...enfin, je pense.
cs_Sebius Messages postés 1 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 26 août 2003
26 août 2003 à 21:17
je viens de télécharger la source et je dois dire que le concept me plait beaucoup. je suis en train de travailler sur le code pour essayer de rentrer des plus gros fichiers sur une image. Je sais pas trop comment je vais y arriver mais ça devrait pouvoir se faire...
cs_Fife Messages postés 73 Date d'inscription lundi 23 octobre 2000 Statut Membre Dernière intervention 16 mars 2008 3
26 août 2003 à 16:04
en fait ce qui prend du temps, c'est l'acquisition des informations sur le point, j'ai pas regardé le code parce que je n'ai pas réinstallé vb6 mais généralement c'est cette routine qui est le facteur limitant.
Proger Messages postés 248 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 19 décembre 2008
25 août 2003 à 22:40
Ca me rappelle les différentes sources de stéganographie sur ce site. Un bon point pour avoir caché un fichier musique FastTracker dans l'image. Mais ce programme n'est pas abouti...
- rajoute une "clé" pour l'encodage/décodage,.. pour que ça doit de la stéganographie
- optimise... normalement l'encodage ou le décodage d'1 Mo de données devrai être instananée (env. 1/2 seconde) vu que ton algo se résume a de l'aglèbre basique (indice : cherche sur ce site les sources sur le traitement d'image très rapide)
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
25 août 2003 à 20:06
Ouais mais comme je l'ai dit y'a un pb avec les valeurs max si on considére pas les valeurs absolues et puis c'est plus simple à utiliser comme ça, c vrai que je ce serait possible de faire mieux mais la longueur de décodage est un facteur limitant, enfin merci pour tes commentaires, vous, là, qui lisez ça, vous, les ronds de cuir, vous feriez bien de faire comme jc qui au mépris des diffcultés a osé mettre un commentaire. Allez, encore un effort ! en cadeau, j'offre un poster de Thierry Roland aux 3 prochains qui ne commentent pas ce prog. Voilà de quoi vous motiver ! ;-p
cs_JcDuss Messages postés 37 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 23 avril 2004
25 août 2003 à 19:46
Et en plus je reviens pour donner mon avis.
Comme tu consideres la valeur absolu de la difference tu perds enormement d'infos.
En effet +5 et -5 te semble indentique
Alors qu'en comparant avec un ordre ca te permettrait de doubler les infos sur chaque pixel.
Rien ne t'empeche d'ailleure d'inclure un caractere de controle qui te donnera l'ordes des images en comparant (la premiere difference doit etre de -5 et tu trouve +5 alors c'est dans l'autre sens)

Duss
PS Merci d'avoir lu jusque là
PPS merci pour l'histoire ;)
CAD9757 Messages postés 74 Date d'inscription dimanche 17 août 2003 Statut Membre Dernière intervention 27 mars 2004
25 août 2003 à 19:28
Vas, je te bénis.
cs_JcDuss Messages postés 37 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 23 avril 2004
25 août 2003 à 19:08
Je vais le telecharger pour voir
et te dirais quoi apres

ca te va ?
lol
Duss