(modifié le 17 mai 2021 à 2:31)

Reparlons de Mifare. J'utilise l'application Android Mifare Classic Tool, aka MCT mais son format de dump n'est pas compatible avec nfc-mfclassic que l'on utilise avec un lecteur USB comme le ACR122U.

Je vous propose un script qui convertit un dump MCT hexadécimal en binaire (.mfd).

2 formats incompatibles

Sous Android MCT travaille avec un format de dump contenant de l’hexadécimal, sur plusieurs lignes. En gros le dump est stocké de la même façon qu'il est affiché.

Alors que sur un ordinateur nfc-mfclassic travaille avec un dump au format binaire, que l'on trouve généralement sous l'une de ces extensions :

  • *.mfd (mifare dump)
  • *.dmp
  • *.img

Il n'y a aucune différence entre les 3, juste l'extension de fichier qui change.

Chemin du dump MCT sur Android

Pour récupérer votre dump MCT il faut vous rendre dans le dossier :

/sdcard/MifareClassicTool/dump-files

Note: "sdcard" est parfois appelé "internal" suivant les versions d'Android

Vous y trouverez tous vos dumps sans extension, c'est tout à fait normal.

Récupérez le dump stocké sur votre smartphone par le moyen de votre choix (USB, email, etc) puis ajoutez-y l'extension .hex (toto devient toto.hex).

Lancement du script

➡️ Récupérez le script : github.com (raw)

Rendre le script exécutable :

chmod +x mct2dmp.sh

Puis lancez-le :

./mct2dmp.sh blogmotion.hex

Le script va produire le fichier mondump.DMP :

> Conversion OK: blogmotion.DMP
Appuyez sur ENTER pour voir le dump, puis Ctrl+C pour sortir...

Et voici le résultat qui doit apparaître en console (hexeditor doit être présent) :

Conclusion

N'hésitez pas à améliorer le script et faire un pull-request sur GitHub. De mon côté j'ai déjà utilisé ce script pas mal de fois sans souci. Les tags chinois (Gen1) coûtent moins cher que ceux de MCT (Gen2 et Gen3) même si c'est vrai qu'ils sont de plus en plus souvent détectés 🙂

Prochainement je vous proposerait également un script de comparaison de dump, c'est celui que j'ai utilisé pour être sûr que ce script convertissait comme il fallait.

Complément

J'ajoute quelques infos utiles :

mifare dump parser permet de parcourir un dump binaire MFD 1K/4K. S'il vous manque bitstring lancez pip install bitstring

Les scripts python de conversion du créateur de MCT (utile pour un proxmark3, dumps au format *.eml). Il est possible d'arriver arriver au même résultat avec ces scripts :

./mct2eml.py dump.hex dump.eml
./eml2mfd.py dump.eml dump.mfd (=dump.DMP pour mon script)

Enfin, mfterm, inclus dans Kali etimpossible à faire fonctionner chez moi, il refuse d'ouvrir un dump (et très peu de doc sur le web).

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter