Stéganographie ou l’art de cacher un texte dans une image

la stéganographie est l’art de cacher une information au sein d’une autre information (par exemple une photo, une vidéo, etc.)

nous pouvons faire de la stéganographie avec du code powershell. Nous utiliserons pour cela une image BMP, la première partie crypte le message codé, la seconde partie décrypte le message. La taille de l’image ne bouge pas, on travaille uniquement sur les codes couleurs du pixel (code RGB).

$x​​ =​​ read-host​​ "indiquer la phrase à cacher"

$long​​ =​​ $x.length

write-host​​ "la taille de la chaine est de :​​ $long"​​ -ForegroundColor​​ Yellow

$fic="c:\temp\terre.bmp"

$tab​​ =​​ get-content​​ $fic​​ -encoding​​ byte​​ -ReadCount​​ 0

#les 57 premiers caractères sont réservés

#ensuite tous chaque pixel est symbolisé par un code couleur

#RVB ex: 255 0 0 pour rouge

$y=57

#cette boucle va uniquement modifier un code couleur ici le rouge

#pour cela on​​ transforme le byte couleur en byte du caractère à cacher

#ex: si le byte couleur rouge vaut 255 et que l'on souhaite

#entrer le car a, on remplace 255 par 97 (code ascii)

for​​ ($i​​ =​​ 0;​​ $i​​ -le​​ $long;​​ $i++)

{

$tab=$tab[0..($y-1)]​​ +​​ [BYTE]$x[$i]​​ +​​ $tab[($y+1)..$tab.length]

 ​​ ​​ ​​​​ $y​​ =​​ $y​​ +​​ 3

}

$tab​​ |​​ set-content​​ c:\temp\stg.bmp​​ -encoding​​ byte​​ 

 

#Déchiffrage de la chaine, à intégrer normalement dans un autre script

#la partie suivante déchiffre le message codé dans l'image

$phrase=$null

$tab=get-content​​ c:\temp\stg.bmp​​ -Encoding​​ byte​​ -ReadCount​​ 0

[int]$nbCar​​ =​​ read-host​​ "Combien a de caractère votre phrase cachée?"

$z=0

$nbcar+=57

$z=57

for​​ ($i​​ =​​ 57;​​ $i​​ -lt​​ $nbcar​​ ;$i+=1)

{

 ​​ ​​ ​​ ​​​​ 

 ​​​​ $phrase+=​​ [char]$tab[$z]

 ​​ ​​ ​​ ​​​​ $z+=3

 ​​​​ 

}

write-host​​ $phrase-ForegroundColor​​ Green​​ 

 

Gaël Marot

gmarot@gtek-it.fr

 

Laisser un commentaire