S'enregistrer | Rechercher | FAQ | Liste des Membres | Groupes d'utilisateurs | Connexion

  Nom d'utilisateur:    Mot de passe:       

  

Poster un nouveau sujet   Répondre au sujet Page 1 sur 1
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
MessagePosté le: Ven Avr 04, 2008 6:43 pm    Sujet du message: Petit programme de stéganographie en VB6 Répondre en citant

HackAngel
Modérateur


 
Inscrit le: 25 Déc 2007
Messages: 871
Localisation: Quelque part entre ici et ailleurs...



Chose promise, chose due.

Petit programme de stéganographie en VB6, qui permet d'insérer du texte dans une image bmp.

Je tiens à préciser que ce topic n'est en aucun cas un tutoriel sur le VB6, et qu'un minimum de connaissances du langage seront nécessaires; je joint malgrès tout deux captures afin que les débutants puissent plus facilement associer les différents éléments graphiques du programme aux fonctions utilisées dans le code.

Form1.frm



Code:
Function bin(nombre As Byte) As String
Dim nombreB As String
        If nombre >= 128 Then
    nombreB = nombre - 128
        Else
    nombreB = "0"
    End If

        If nombre >= 64 Then
    nombreB = nombreB & "1"
    nombre = nombre - 64
        Else
    nombreB = nombreB & "0"
    End If

        If nombre >= 32 Then
    nombreB = nombreB & "1"
    nombre = nombre - 32
        Else
    nombreB = nombreB & "0"
    End If

        If nombre >= 16 Then
    nombreB = nombreB & "1"
    nombre = nombre - 16
        Else
    nombreB = nombreB & "0"
    End If

        If nombre >= 8 Then
    nombreB = nombreB & "1"
    nombre = nombre - 8
        Else
    nombreB = nombreB & "0"
    End If
   
        If nombre >= 4 Then
    nombreB = nombreB & "1"
    nombre = nombre - 4
        Else
    nombreB = nombreB & "0"
    End If

        If nombre >= 2 Then
    nombreB = nombreB & "1"
    nombre = nombre - 2
        Else
    nombreB = nombreB & "0"
    End If
   
        If nombre >= 1 Then
    nombreB = nombreB & "1"
    nombre = nombre - 1
        Else
    nombreB = nombreB & "0"
    End If
    bin = nombreB
End Function

Function b10(bits As String) As Byte
    Dim nombre As Byte
    nombre = 0
        If Mid(bits, 1, 1) = "1" Then nombre = 128
        If Mid(bits, 2, 1) = "1" Then nombre = nombre + 64
        If Mid(bits, 3, 1) = "1" Then nombre = nombre + 32
        If Mid(bits, 4, 1) = "1" Then nombre = nombre + 16
        If Mid(bits, 5, 1) = "1" Then nombre = nombre + 8
        If Mid(bits, 6, 1) = "1" Then nombre = nombre + 4
        If Mid(bits, 7, 1) = "1" Then nombre = nombre + 2
        If Mid(bits, 8, 1) = "1" Then nombre = nombre + 1
    b10 = nombre
End Function

Private Sub Steganoin_Click()
Dim i, j As Integer
Dim octet, octet2 As Byte
Dim octetbin, octetbin2 As String
    Open Stegfile.Text For Binary Access Read As #1
    Open Stegfile.Text For Binary Access Write As #2
        i = 0
        j = 0
    For j = 1 To Len(Stegtext.Text)
        octet = Asc(Mid(Stegtext.Text, j, 1))
        octetbin = bin(octet)
    For i = 1 To 8
    Get 1, i + ((j - 1) * 8) + 100, octet2
        If Mid(bin(octet2), 8, 1) = Mid(octetbin, i, 1) Then
    Else
    octetbin2 = Left(bin(octet2), 7) & Mid(octetbin, i, 1)
        Put 2, i + ((j - 1) * 8) + 100, b10(octetbin2)
        End If
        Next
        Next
    Close #1, #2
    Screen.Text = "Code injecté dans " + (Stegfile.Text) + "."
End Sub

Private Sub Steganoopen_Click()
frmPicture.Show 1
End Sub

Private Sub Steganoout_Click()
    Dim i, j As Integer
    Dim octet As Byte
    Dim octetbin As String
    Stegtext.Text = ""
    Open Stegfile.Text For Binary Access Read As #1
        i = 0
        j = 0
    For j = 1 To 200
    octetbin = ""
    For i = 1 To 8
    Get 1, i + ((j - 1) * 8) + 100, octet
    octetbin = octetbin & Right(bin(octet), 1)
    Next
    Next
    Close #1, #2
End Sub


formPicture.frm



Code:
Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Command2_Click()
On Error GoTo Annuler
If Right$(Dir.Path, 1) = "\" Then
Nom = Dir.Path + File.FileName
Else
Nom = Dir.Path + "\" + File.FileName
End If
Form1.Stegfile.Text = Nom
Annuler:
Unload Me
End Sub

Private Sub Drive_Change()
Dir.Path = Left$(Drive.Drive, 2) + "\"
File.Path = Dir.Path
File.Pattern = "*.bmp"
End Sub

Private Sub Dir_Change()
File.Path = Dir.Path
File.Pattern = "*.bmp"
End Sub

Private Sub Form_Load()
Drive.Drive = "c:\"
Dir.Path = "c:\"
File.Path = "c:\"
File.Pattern = "*.bmp"
End Sub


Vous aurez remarqué la présence du bout de code suivant:

Code:
Screen.Text = "Code injecté dans " + (Stegfile.Text) + "."


Sur les images, rien ne correspond à Screen.Text; cet écran était intégré à la plate-forme, et il vous faudra l'incorporer au programme, ou supprimer le code correspondant à son utilisation.

Voilà. C'est un vieux programme, j'ai sûrement récupéré les déclarations quelque part à l'époque, et je l'ai intégré à une plate forme multi-outils. Je pense que ce peut être une bonne première approche de la stéganographie en VB6.

Je ne l'ai jamais retouché depuis, libre à vous de le faire... Wink

[Je viens juste de le tester, et il ne fonctionne pas. Le sujet étant prêt, je vous le livre tout de même, et apporterai les modifications s'il y a lieu (il se peut que le bug vienne d'une autre fonction de la plate forme, et que l'outil fonctionne très bien indépendamment).

Toutes mes excuses, je vois pour réparer ça au plus vite...
]

Pour la Liberté...

HackAngel
Voir le profil de l'utilisateur Envoyer un message privés Envoyer un e-mail Messagerie Instantanée
Poster un nouveau sujet   Répondre au sujet Page 1 sur 1

  


 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum



122962 Attacks blocked