Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Steganographie basique

5/5 (22 avis)

Snippet vu 5 457 fois - Téléchargée 15 fois

Contenu du snippet

Salut a tous,
Je vous propose ce petit code qui a pour but d'inserer a l'interieur d'une image (dans ce cas la) n'importe quel document texte (j'appelle texte tout ce qui peut etre ouvert avec un bloc note)
Bien evidemment c'est tout a fait basique (j'entend par la aucun cryptage ou manipulation de bits) mais disons que ça peut malgré tout être utile

Dorenavent tous les types d'images habituels ( .bmp .tga .jpg .png et .tif) sont reconnus

Voila si vous avez des commentaires, suggestions, (insultes lol) a me faire parvenir, n'hesitez pas

Source / Exemple :


alias stegano_m {
  var %file $$sfile($+($left($mircdir,1),:\),Selectionnez l'image qui servira de support)                             
  var %final $?="Entrez le nom/chemin du fichier qui sera créé [meme extension que le fichier support]"                    | if (!%final) halt
  var %hide $$sfile($+($left($mircdir,1),:\),Selectionnez le fichier a cacher)                                          
  if ($exists(%final)) {
    echo -a 4(?) Le fichier %final existant, le fichier crée se nomme desormais $+(%final,.double) 4(?)
    %final = %final $+ .double
  }   
  echo -a ---------------------------------------------------------------
  echo -a Masquage en cours...

  %file = $+(",%file,") | %hide = $+(",%hide,") | %final = $+(",%final,")
  .copy %file %final
  write %final F?J?X $+ $crlf $+ $remove(%hide,")
  .copy -a %hide %final
  var %total $file(%file)
  write %final $chr(126) $+ %total 

  echo -a Operation terminée !
  echo -a Le fichier %final contenant le fichier %hide  a été crée avec succes !
  echo -a ---------------------------------------------------------------
}

alias stegano_dm {
  var %file $$sfile($+($left($mircdir,1),:\),Selectionnez l'image contenant le fichier masqué)
  var %file = $+(",%file,")
  var %filetmp $+($left($mircdir,1),:\recover.tmp)
  var %size $file(%file) , %tmp 0
  .fopen file %file
  while (%tmp <= 15) {
    .fseek file $calc(%size - %tmp)
    if ($chr($fgetc(file)) == $chr(126)) {
      var %pos $fopen(file).pos , %tmp2 2 , %debhide $null
      while ($calc(%pos + %tmp2) < %size) {
        var %debhide = %debhide $+ $chr($fgetc(file))
        inc %tmp2
      }
      break
    }
    inc %tmp 
  }
  if (!%debhide) { echo -a 4/!\ Le fichier %file ne contient pas de fichier masqué ! 4/!\ | .fclose file | halt }

  echo -a ---------------------------------------------------------------
  echo -a Récuperation en cours...

  bread %file %debhide %size &donnees
  bwrite %filetmp 1 $bvar(&donnees,0) &donnees
  var %chemin = $read(%filetmp,3)
  write -d11 %filetmp | write -dl2 %filetmp | write -dl0 %filetmp
  .fclose file 
  .rename %filetmp $+(",%chemin,.secret,")

  echo -a Le fichier $nopath($remove(%chemin,.secret)) a été recupéré !
  echo -a Chemin du fichier:  $+(",%chemin,.secret,") [extension .secret a supprimer]
  echo -a ---------------------------------------------------------------
}

Conclusion :


enjoy :)

a suivre...

A voir également

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.