• STATISTIQUES
  • Il y a eu un total de 1 membres et 919 visiteurs sur le site dans les dernières 24h pour un total de 920 personnes!


    Membres: 2 097
    Discussions: 3 554
    Messages: 32 736
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




[Stégano] Le padding BMP

Pour cacher de l‘information dans une image au format bmp, on peut utiliser le padding bmp.
[SIZE="5"]
Tout d'abord, comment est construit un BMP ?[/SIZE]


Tout d‘abord, voyons comment un bmp est construit (ouvrez par exemple une image bmp avec un éditeur de texte ou un éditeur hexadécimal).

BM...................................................image

BM : Header du bmp. Permet de reconnaitre le format du fichier (chaque format en a un: par exemple, le format PNG commence toujours par ‰PNG)

... Plusieurs informations concernant l‘image, notamment sa longueur, ses dimensions, le système d‘exploitation sous lequel elle a été créer... Ce ne sera d‘aucune utilité pour notre tuto.

image: L‘image, débutant à l‘octet 54.


L‘image est codée de la façon suivante : bvr.bvr.bvr.bvr. ...où r, v et b sont les 3 composantes d‘un pixel (rouge, vert et bleu), et où le . est un octet reservé (inutilisé, et généralement nul).

À noter que l‘octet reservé apparait que dans un bmp 32 bits, vu que 32 bits = 4 octets, donc 3 rvb et 1 inutile. Dans les bmp 24 bits, il n‘y a pas d‘octet reservé, donc un pixel = 3 octets. Il faut donc savoir que les composantes sont notées à l‘envers (bvr au lieu de rvb).

Il faut aussi savoir que le bmp écrit les pixels en partant du bas-gauche de l‘image, et en allant de gauche a droite, en remontant l‘image de bas en haut.

Par exemple, pour une image :

abc def ghi
jkl mno pqr
stu vwx yz0 (où 3 lettres = un pixel, c‘est donc une image de taille 3px sur 3px)

Le bmp l‘écrira de cette façon :

uts xwv 0zy lkj onm rqp cba fed ihg
(Pour plus de clarté, j‘ai laissé les espaces, mais il n‘y a pas d‘espaces dans le bmp)


[SIZE="5"]Bon, c‘est bien beau mais... le padding bmp dans tout ça ?![/SIZE]

Le problème dans un bmp, c‘est que il faut absolument qu‘une ligne dans un bmp soit multiple de quatre. Par exemple, dans notre exemple de tout à l‘heure :
utsxwv0zylkjonmrqpcbafedihg

Une ligne = 9 octets [=3 pixels], ce qui donne
utsxwv0zy
lkjonmrqp
cbafedihg

Or 9 n‘est pas un multiple de quatre ! Il va donc falloir rajouter des caractères afin que la "ligne" soit multiple de quatre. Ainsi, a chaque ligne, nous allons rajouter 3 octets nuls pour qu‘une ligne fasse douze caractères et douze est un multiple de quatre.
On se retrouve donc avec :
utsxwv0zy...
lkjonmrqp...
cbafedihg...

Soit
utsxwv0zy...lkjonmrqp...cbafedihg... dans notre bmp.
(les . représentent des octets nuls)

Seulement, qui nous empêche de mettre autre chose que des octets nuls ? Je peux très bien mettre :
utsxwv0zymsglkjonmrqpcaccbafedihghé!

Pour extraire le message caché, je regarde la longueur de l‘image qui est de neuf, le multiple de quatre qu‘il y a juste après est douze, donc je coupe tout les douze octets :

utsxwv0zymsg
lkjonmrqpcac
cbafedihghé!

Et je lis les 3 derniers octets de chaque ligne.


[SIZE="5"]Pour finir[/SIZE]

[SIZE="4"]Avantages et inconvénients[/SIZE]

Les avantages de cette technique sont que la taille du fichier n‘est pas modifié, et que l‘image n‘a pas a été modifiée non plus (vu que la stéganographie ne se fait pas dans l‘image, mais dans la structure du bmp, contrairement à la technique du LSB par exemple).

L‘inconvénient de cette technique est que l‘information cachée est en clair dans le bmp, et ainsi, par exemple, si l‘on cache un GIF dans du padding bmp, en sachant que les trois premières lettres d‘un fichier gif sont... "GIF", on peut peut-être voir le mot GIF en clair dans le fichier si la taille du padding d‘une ligne est de trois Smile


[SIZE="4"]Exemple :
[/SIZE]
Essayez de trouver le message caché dans cette image... Wink

Veuillez vous enregistrer pour visualiser l'ensemble du forum en cliquant ici.

Luxerails
14-12-2011, 18h17
Message : #1
supersnail Hors ligne
Éleveur d'ornithorynques
*****



Messages : 1,588
Points: 465
Inscription : Jan 2012
[Stégano] Le padding BMP
Tuto sympa Wink. Tu serais partant pour le publier dans le zine (ou nous en faire un spécialement pour lui :þ)
14-12-2011, 19h40
Message : #2
Luxerails Hors ligne
Bon membre
*



Messages : 267
Points: 67
Inscription : Aug 2011
[Stégano] Le padding BMP
Bien sur Tongue

New Project News White Hat Hacker V2.3
Accueil | Challenges | Tutoriels | Téléchargements | Forum