Créateur : Trance
Date de création : 02/04/2007
Section : Sécurité > Cryptographie
Télécharger md5pack et md5unpack
Outils permettant de creer deux archives de même hashes MD5 à partir de deux fichiers de hashes différents, et d'extraire ces fichiers.
Note : Ceci n'est que le manuel d'utilisation des deux outils md5pack et md5unpack. Pour une description complète et détaillée de leur fonctionnement, je vous recommande fortement de lire l'article sur l'exploitation des collisions MD5.
Ces deux outils exploitent les collisions de l'algorithme MD5 et permettent de produire et d'extraire des fichiers différents de deux archies qui ont le même hash MD5. Ils ont été développés pour fonctionner sous Linux, mais fonctionnent logiquement de la même façon sous Windows (il se peut qu'il faille retoucher quelques fichiers inclus).
L'archive distribuée se compose de deux sous-dossier qui contiennent tous les deux 4 fichiers : header.h, main.c, fichiers_bib.c et fichiers_bib.h. Leur compilation est identique et se fait soit avec le Makefile fourni (en tapant "make"), soit avec les commandes :
En remplaçant bien entendu "executable" par "md5pack" ou "md5unpack" selon le dossier dans lequel vous êtes.
Ces deux outils sont censés être stables. En effet, je n'ai renconté aucun bug en les utilisant. Je diffuse ces deux programme sous licence GPL v2. Libre à vous de corriger les éventuels bugs et d'aaméliorer ces outils :)
Il s'agit du packer. Il prend en entrée deux fichiers différents (ils peuvent être exécutables) et rend en sortie deux archives binaires de même hashes MD5, qui contiennent les deux fichiers.
On les compile :
Les deux programmes fonctionnent. On constate au passage qu'ils n'ont pas le même hash MD5 :
On les passe maintenant à md5pack :
Et on constate que les deux archives créées ont le même hash.
Et en plus, elles ont la même taille.
Il est dont dur de les différencier. La seule solution pour le détecter serait de faire un diff :
md5unpack prend en entrée une archive crée avec md5pack, et extrait le bon fichier en fonction du header de l'archive.
Le programme extrait l'archie "archive.bin" dans le fichier "fichier". Voici un exemple d'utilisation, à partir des archives "gentil.bin" et "mechant.bin" crées précédemment avec md5pack :
Notez que le comportement du programme n'est pas prévu lorsqu'on lui passe un fichier quelconque qui n'a pas été produit avec md5pack...
J'espère que ces programmes vous seront utiles. Vous êtes libre de les améliorer et de les rediffuser, au sens de la GPL v2.