begin process at 2012 02 16 21:05:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CACHER UN MESSAGE DANS UNE IMAGE

CACHER UN MESSAGE DANS UNE IMAGE


 Information sur la source

Note :
7,5 / 10 - par 4 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :23/06/2003 Date de mise à jour :23/06/2003 03:18:33 Vu / téléchargé :5 354 / 526

Auteur : Greengold

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Voici une dll dont le but est de créer une image (gif, bmp, jpg...) à partir d'une image existante dans laquelle on pourra cacher un message texte, puis de récupérer ce même message à partir de l'image précédemment crée.

Je présente ici seulement la partie technique ! Si vous passez des paramètres incorrects à mes fonctions elles planteront. Donc, un test d'existance des fichiers avec le fileSystemObject ou un On Error Resume Next seront utiles pour les plus pointilleux !

Merci pour vos commentaires :)

Source

  • Public Function CryptImage(ByVal PathImageSource As String, ByVal PathImageCrypt As String, ByVal Message As String) As Long
  • Dim octet As Byte
  • Dim i As Integer
  • Open PathImageSource For Binary Access Read As #1 'ouverture de l'image originale
  • Open PathImageCrypt For Binary Access Write As #2 'création de l'image avec le message
  • While Not EOF(1) 'tant que non fin
  • Get #1, , octet
  • Put #2, , octet
  • Wend
  • For i = 1 To Len(Message) 'rajout du message octet par octet à la fin de l'image
  • Put #2, , Asc(Mid(Message, i, 1))
  • Next
  • Close #1
  • Close #2
  • CryptImage = FileLen(PathImageSource) + 1 'point d'insertion du message = poids de l'image + 1
  • End Function
  • Public Function DecryptImage(ByVal PathImageCrypt As String, ByVal code As Long) As String
  • Dim cpt As Long
  • Dim octet As Byte
  • Dim Message As String
  • Open PathImageCrypt For Binary Access Read As #1 'ouverture de l'image contenant le message
  • While Not EOF(1)
  • Get #1, , octet
  • cpt = cpt + 1
  • If cpt > code Then 'si j'ai atteint le point d'insertion
  • If Not octet = 0 Then
  • Message = Message & Chr(octet) 'recomposition du message
  • End If
  • End If
  • Wend
  • Close #1
  • DecryptImage = Message 'on renvoie le message
  • End Function
  • ' Utilisation de la dll
  • '
  • 'Faire projet --> références --> parcourrir (selection de ma dll)
  • '
  • 'Voici un exemple de code...
  • '
  • '
  • 'Dim hehe As New SecretMessage.ClassSecretMessage
  • ' Dim code As Long
  • '
  • ' code = hehe.CryptImage(App.Path & "\test.jpg", App.Path & "\modif.jpg", "La vie est formidable !")
  • ' MsgBox hehe.DecryptImage(App.Path & "\modif.jpg", code)
Public Function CryptImage(ByVal PathImageSource As String, ByVal PathImageCrypt As String, ByVal Message As String) As Long
    Dim octet As Byte
    Dim i As Integer
    
    Open PathImageSource For Binary Access Read As #1   'ouverture de l'image originale
    Open PathImageCrypt For Binary Access Write As #2   'création de l'image avec le message
    
        While Not EOF(1)        'tant que non fin
            Get #1, , octet
            Put #2, , octet
        Wend
        
        For i = 1 To Len(Message)           'rajout du message octet par octet à la fin de l'image
            Put #2, , Asc(Mid(Message, i, 1))
        Next
    Close #1
    Close #2
    CryptImage = FileLen(PathImageSource) + 1   'point d'insertion du message = poids de l'image + 1
End Function


Public Function DecryptImage(ByVal PathImageCrypt As String, ByVal code As Long) As String
    Dim cpt As Long
    Dim octet As Byte
    Dim Message As String

    Open PathImageCrypt For Binary Access Read As #1   'ouverture de l'image contenant le message
        While Not EOF(1)
            Get #1, , octet
            cpt = cpt + 1
            If cpt > code Then      'si j'ai atteint le point d'insertion
                If Not octet = 0 Then
                    Message = Message & Chr(octet)  'recomposition du message
                End If
            End If
        Wend
    Close #1
    DecryptImage = Message      'on renvoie le message
End Function

' Utilisation de la dll
'
'Faire projet --> références --> parcourrir (selection de ma dll)
'
'Voici un exemple de code...
'
'
'Dim hehe As New SecretMessage.ClassSecretMessage
'    Dim code As Long
'    
'    code = hehe.CryptImage(App.Path & "\test.jpg", App.Path & "\modif.jpg", "La vie est formidable !")
'    MsgBox hehe.DecryptImage(App.Path & "\modif.jpg", code)




 Conclusion

Bon coding à tous ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture "EVENEMENTS" ONMOUSEOUT ET ONMOUSEOVER POUR UN CONTROLE
Source avec Zip Source avec une capture EFFET TRANSPARENCE : MSN MESSENGER 6
Source avec Zip Source avec une capture GESTION DE SMILEYS AVEC RICHTEXTBOX

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

Commentaires et avis

Commentaire de Tilois le 23/06/2003 10:23:51

interressant ....
futur agent du FBI ?? lol en bonne voie en tous cas !!
9/10

Commentaire de sylric le 23/06/2003 11:07:09

Super bien pensé ton truc !
Par contre, utilise un système de cryptage pour le texte car il est lisible en ouvrant l'image avec un éditeur de texte.
8/10

Commentaire de EBArtSoft le 23/06/2003 12:02:21 administrateur CS

Cacher le message en fin de fichier c bien au debut ...
mais pour un meileur camouflage tu peut recuperer les valeurs
RGB des pixels que tu combine avec la valeur du caractere
l'image sera un petit peu modifié tout depend de la taille de l'image
ou bien ecrire le texte prealablement cryté de maniere classique par exemple avec un tableau de correspondance A = 0 : B = 1
que tu place dans l'espace reservé d'une image 24 bits j'explique:
un pixel en mode 24 bits est aligné sur 32 bits (4 octets)
1 = Rouge
2 = Vert
3 = Bleue
4 = Vide (ou gamma en mode 32 bits)
tu peux placer un caractere dans cet espace vide !

il y a plein d'autres techniques combinatoire a toi de trouver le bon compromis entre vitesse, qualité, difficulté

b@nne prog

Commentaire de ido le 24/06/2003 09:31:44

cacher en fin d'image est tras facile...
tu peu aussi caché en fin de mp3, de midi, de wav et d'une centaine d'autre format..
plus fort, tu peux cacher en fin d'exe... comme ça, tu protege ton exe par mot de passe, que tu inscrit en fin de lui meme et a chaque lancement tu relis... et si tu veux changer le mot de passe a partir du prog, fodra ruser... fo copier l'exe ailleur, changer le mdp ds l'exe copier, lancer un deuxime exe (et fermer le 1er) qui va remplacer le 1er par celui avec le nouveau mot de passe...

Commentaire de EBArtSoft le 24/06/2003 17:20:23 administrateur CS

ido>bien sur que c facile mais c'est trop facilement detectable aussi !
du plus bcp d'antivirus recupere la signature des fichier en calculant le CRC donc tout changement de taille ou de donnée entraine une mise en quarantaine et pour passer inaperçu .. c'est raté !

bref pour resumer, cette technique se situe sur une echelle de 1 à 10:

Facilité de création = 10
Facilité de lecture   = 9
confidentialité = 5
furtivité = 1

du moin c ce que j'en pense ...

@+

Commentaire de mighnion le 01/09/2004 11:53:17

merci Greengold

je viens de l'integrer dans mon prog et c'est genial. Bon je l'ai crypter pour ne pas le voir en interne dans mon prog. Merci pour ce dll

note 10/10

meme s'il n'y a pas en natif de cryptage. ça ma permis de reflechir un peu lol.

Commentaire de eliozo le 20/03/2005 20:18:39

est ce quelqu un pourra me donner le code du programme: message caché dans une image bmp.
e-mail: eliassooo@hotmail.com
Merci BIEN...

Commentaire de eliozo le 22/03/2005 14:58:36

C"est que ce dll est plus difficile et a un niveau plus haut que le mien. moi je connais le C++ plutot niveau 2. est ce quelqu un pourra m aider a le traduire? Merci bien! ELIANNE...

Commentaire de simon22 le 20/04/2005 18:41:51

salut
jaime baucoup sa va baucoup me servire merci pour ta source
10\10

simon22

Commentaire de Le mirage le 20/05/2005 22:55:21

slt :
    il y a une méthode de communiquer avec le port série pour contrôler des actionneurs, je veux utiliser une dll pour cela , il y a un prog qui connais une méthode bien fiable pour réaliser ça?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,881 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales