Cacher mot de passe dans bitmap - steganographie

Description

Bonjour,

J'ai cherché à cacher un mot de passe sans que cela ne se voit trop.
Je ne voulais pas utiliser la base de registre mais un lieu tellement évident qu'on ne le soupçonne pas : dans une image.

Avec l'exemple fourni (l'image test-source est dans un fichier .res), on ne voit pas trop le mot de passe une fois inséré dans l'image. On peut bien sûr modifier tous les paramètres et la clé de cryptage Xor utilisée pour le cryptage du mot de passe (dans le fichier .res également)

Le mot de passe n'est pas inséré en fin de fichier mais dans l'image :

Pour l'exemple, j'utilise un bitmap (obligatoirement 24 bits) et je code à la ligne 3, du 3ème au 46ème pixel à l'aide du paramètre RGB bleu. Du coup, je peux coder une chaîne de 43 caractères sur cette ligne. Je pense que ce n'est pas trop visible.

Merci à Steff : http://www.vbfrance.com/code.aspx?ID=16929 qui a largement inspiré mon code.

Cordialement, ym_trainz

Source / Exemple :


'In the zip

'2 versions du projet :
'une avec tracé des images (capture)

'l'autre sans tracé mais sous forme d'un module, plus facilement insérable dans un projet :

Public Function MpassToBmp(PassWord As String, BmpFilePathSource As String, _
        BmpFilePathDest As String, KeyEncrypt As String, ToWrite As Boolean, _
        LineToInsert As Integer, FirstColPix As Integer, LastColPix As Integer) As Boolean
    '-------------------------------
    'la fonction à appeler
    'ym_trainz 2008
    '-------------------------------
    'paramètres :
    '
    'PassWord : mot caché (à lire ou à écrire dans l'image
    '           la longueur du mot maxi est LastColPix - FirstColPix (car 1 caractère réservé pour la longueur du mot)
    '           Limite 254 caractères quand même, à cause de Dim TabMo() As Byte (tableau des caractères)
    'BmpFilePathSource : chemin de l'image bitMpas 24bit source
    'BmpFilePathDest : chemin de l'image bitMpas 24bit destination
    '                  (n'est utile que si on écrit le mot caché, laisser vide pour une lecture)
    'KeyEncrypt : clé de crytage Xor pour coder le mot à cacher
    'ToWrite : True pour écrire , False pour lire
    'LineToInsert : indice de la ligne où se situe le mot à lire ou à écrire (1 à InfoHeader.Height)
    'FirstColPix et  LastColPix : premier et dernier pixel (colonne) pour le champ du mot à écrire ou à lire
    '                           (LastColPix - FirstColPix)<=254

Conclusion :


Il existe déjà des sources sur le sujet mais je pense que le mot de passe est plutôt bien camouflé ;-)
L'image test est automatiquement crée au démarrage (form_load) Elle se régénère donc automatiquement.

La version module permettra une utilisation plus simple à l'aide d'une seule fonction MpassToBmp()

Codes Sources

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.