DIGNE D'UN AGENT SECRET : CACHEZ VOS TEXTES OU FICHIERS DANS DE BANALES IMAGES.
cs_JcDuss
Messages postés37Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention23 avril 2004
-
25 août 2003 à 19:08
CAD9757
Messages postés74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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.
CAD9757
Messages postés74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és248Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention19 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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és36Date d'inscriptionvendredi 30 août 2002StatutMembreDerniè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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és248Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention19 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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és1Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention26 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és73Date d'inscriptionlundi 23 octobre 2000StatutMembreDernière intervention16 mars 20083 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és248Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention19 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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 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és37Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention23 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és74Date d'inscriptiondimanche 17 août 2003StatutMembreDernière intervention27 mars 2004 25 août 2003 à 19:28
Vas, je te bénis.
cs_JcDuss
Messages postés37Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention23 avril 2004 25 août 2003 à 19:08
Je vais le telecharger pour voir
et te dirais quoi apres
28 août 2003 à 20:57
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.
28 août 2003 à 20:17
28 août 2003 à 10:42
28 août 2003 à 05:55
'aimerai un jour programmer des chose comme ça
27 août 2003 à 16:07
27 août 2003 à 14:22
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 :)
27 août 2003 à 11:43
27 août 2003 à 11:29
26 août 2003 à 21:17
26 août 2003 à 16:04
25 août 2003 à 22:40
- 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)
25 août 2003 à 20:06
25 août 2003 à 19:46
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 ;)
25 août 2003 à 19:28
25 août 2003 à 19:08
et te dirais quoi apres
ca te va ?
lol
Duss