Nfc Tools sur Windows – Table des matières
- Introduction –> lien
- Comment utiliser l’ACR122U avec libusbK –> lien
- Mifare One Tool en anglais–> lien
- Comment cross-compiler les commandes NFC sur Windows 64 bits –> lien
- Sharp Free fare (encapsuleur libfreefare en dotnet) + mise à jour de SharpNfc –> lien
- libnfc recompilée avec libusb version 1.0 pour Windows –> lien
- Convertisseur en 1 clic de dumps android mifare classic tool <–> libnfc linux/windows nfc- mfc classic, sur windows –> lien
- Téléchargement : tous les outils dans un fichier zip –> lien
Introduction
J’ai cross-compilé libnfc et nfc utils pour windows, en m’aidant de cet article: https://github.com/peacepenguin/libnfc-unofficialbuilds
J’avais un problème de pilote avec libnfc/nfc utils utilisés avec mon ACR122U (erreur : No NFC device found ), mais il suffit en fait d’installer LibUsbK, et ça résous le problème.
- Comment installer LibUsbK pour l’ACR122U –> link
Tous les logiciels pour windows 10 64x ainsi que l’installeur du pilote LibUsbK pour ACR 122U (entre autres) sont dispos en téléchargement gratuit dans cet article.
Remarque : si vous rencontrez une erreur « libwinpthread-1.dll manquant » ou bien « libgcc_s_seh-1.dll manquant », les dll sont inclues dans le lien qui se trouve dans cette section
Comment installer le pilote LibUsbK pour pouvoir utiliser l’ACR122 avec les outils disponibles sur windows ?
- Installer le pilote ACR 122U d’origine dispo ici : https://www.acs.com.hk/en/driver/3/acr122u-usb-nfc-reader/
- Télécharger libusbk : https://sourceforge.net/projects/libusbk/
- Installer le pilote LibusbK comme indiqué ci-dessous:
LIBUSB K 3.1.0.0 guide d’install janvier 2022 (Mise à jour) : https://github.com/xavave/Mifare-Windows-Tool/issues/27#issuecomment-1013955059
Comment cross compiler les logiciels pour windows 64 bits
Mfoc (https://github.com/nfc-tools/mfoc) cross-compilation pour windows :
sur Linux Ubuntu en utilisant build_mfoc.sh :
contenu du fichier build_mfoc.sh (à enregistrer sur votre pc):
MAIN_FILE=mfoc LIBNFC=libnfc CFLAGS=`pkg-config --cflags ${LIBNFC}` CFLAGS_LIBNFC=`pkg-config --cflags libnfc | cut -d ' ' -f 1`/${LIBNFC} x86_64-w64-mingw32-gcc -s -Wl,--allow-multiple-definition ./${MAIN_FILE}.c ./mfoc.c ./mifare.c ./slre.c ./nfc-utils.c ./crapto1.c ./crypto1.c ./bin/libnfc.lib ${CFLAGS} ${CFLAGS_LIBNFC} -o ./bin/${MAIN_FILE}_x64.exe
ensuite lancer ces commandes :
cd mfoc/src chmod +x build_mfoc.sh ./build_mfoc.sh
Cropto1_bs (https://github.com/vk496/cropto1_bs) cross compilation sur windows : (compilé sur windows 64 avec msys2 dispo ici : http://www.msys2.org/ –> version x86-x64)
Remarque : Pour installer gcc sur msys2 cet article peut être utile : https://www.devdungeon.com/content/install-gcc-compiler-windows-msys2-cc
commande de compilation/linking :
x86_64-w64-mingw32-gcc-9.2.0 -o cropto1_bs util.o main.o parity.o ui.o cmdhfmfhard.o util_posix.o crapto1/crapto1.o crapto1/crypto1.o hardnested/hardnested_bruteforce.o hardnested/tables.o C:/libnfc-build/libnfc/libnfc.lib hardnested/hardnested_bf_core_NOSIMD.o hardnested/hardnested_bitarray_core_NOSIMD.o hardnested/hardnested_bf_core_MMX.o hardnested/hardnested_bitarray_core_MMX.o hardnested/hardnested_bf_core_SSE2.o hardnested/hardnested_bitarray_core_SSE2.o hardnested/hardnested_bf_core_AVX.o hardnested/hardnested_bitarray_core_AVX.o hardnested/hardnested_bf_core_AVX2.o hardnested/hardnested_bitarray_core_AVX2.o hardnested/hardnested_bf_core_AVX512.o hardnested/hardnested_bitarray_core_AVX512.o -lz -lm -LC:/msys64/usr/share/readline -lpthread -llzma
mfcuk (https://github.com/DrSchottky/mfcuk) cross compilation pour windows (depuis Linux ubuntu):
build_mfcuk.sh :
MAIN_FILE=mfcuk LIBNFC=libnfc CFLAGS=`pkg-config --cflags ${LIBNFC}` CFLAGS_LIBNFC=`pkg-config --cflags libnfc | cut -d ' ' -f 1`/${LIBNFC} x86_64-w64-mingw32-gcc ./${MAIN_FILE}.c ./mfcuk_mifare.c ./mfcuk_utils.c ./mifare.c ./nfc-utils.c ./mfcuk_finger.c ./crapto1.c ./crypto1.c ./bin/libnfc.lib ${CFLAGS} ${CFLAGS_LIBNFC} -o ./bin/${MAIN_FILE}_keyrecovery_darkside.exe
nfc-mfcclassic (https://github.com/nfc-tools/libnfc/tree/master/utils) build_nfc-mfcclassic.sh
cross compilation pour windows depuis ubuntu:
MAIN_FILE=nfc-mfclassic LIBNFC=libnfc CFLAGS=`pkg-config --cflags ${LIBNFC}` CFLAGS_LIBNFC=`pkg-config --cflags libnfc | cut -d ' ' -f 1`/${LIBNFC} x86_64-w64-mingw32-gcc -s -shared -Wl,--subsystem,windows ./${MAIN_FILE}.c ./mifare.c ./nfc-utils.c ./bin/libnfc.lib ${CFLAGS} ${CFLAGS_LIBNFC} -o ./bin/${MAIN_FILE}.exe
nouveau 7 janvier 2020 : mfoc version hardnested pour windows 64x , basé sur les sources suivantes : https://github.com/vk496/mfoc/tree/hardnested
commandes de cross-compilation : (de légers changements ont du être effectués dans les fichiers sources, notamment pour corriger les références au dossier source nfc et au fichier err.h, ainsi que pour mettre à jour le nom de la version)
(sur windows mingw64) :
autoreconf -vis
automake
make install
correction des erreurs de compilation mfoc quand on lance la commande « make install » :
- fatal error –> nfc/nfc.h : No such file or directory
- – copier le dossier libnfc\include\nfc folder dans le dossier mfoc\src\ et mettre à jour le fichier mfoc.c, dans le dossier mfoc.src:
Remplacer :
#include <nfc/nfc.h>
par :
#include "nfc/nfc.h"
- autre erreur –> fatal error : err.h : No such file or directory
- Copier le fichier libnfc\contrib\win32\err.h dans le dossier mfoc\src\ ainsi que le fichier nfc-utils.h dans le dossier mfoc\src\
Remplacer :
# include <err.h>
par :
# include "err.h"
et relancer la commande :
make-install
- S’il n’y a plus d’erreur ensuite ,mfoc.exe devrait maintenant avoir été crée dans le dossier mfoc/src
- copie d’écran du résultat (test de mfoc hardnested) :
Sharp free fare – 15 janvier 2020
J’ai également mis à jour le wrapper C# de libnfc : SharpNfc ainsi que Sharp free fare, maintenant basé sur la version compilée pour windows de libnfc.dll et de libfreefare.dll:
dispo ici : https://github.com/episage/sharp-free-fare
17 janvier 2020 : libnfc fork – qui fonctionne avec libusb1.0 sur Windows 64 (au lieu de l’ancien libusb 0.1)
J’ai également cross-compilé libusb1.0 sur windows 64 en utilisant ces scripts : https://github.com/FPGAwars/libusb-cross-builder
Ensuite J’ai compilé (après quelques corrections d’erreurs dans les références #include du code source), libnfc avec libusb1.0 ; lien de cette version dédiée de libnfc : https://github.com/nfc-tools/libnfc/tree/libusb10
Remarque : J’ai seulement ajouté le pilote USB pour le ACR122 dans la compilation mais rien ne vous empêche d’en ajouter d’autres 🙂
commande de cross-compilation sur Mingw64 (msys2):
- Mettre à jour nfc.c –> return « 1.7.0 LIBUSB10 »;
const char * nfc_version(void) { #ifdef GIT_REVISION return GIT_REVISION; #else return "1.7.0 LIBUSB10"; #endif // GIT_REVISION }
- compiler –>
gcc -Dnfc_EXPORTS -DDEBUG -DDRIVER_ACR122_USB_ENABLED -c drivers/acr122_usb.c buses/usbbus.c chips/pn53x.c iso14443-subr.c nfc-internal.c nfc.c target-subr.c nfc-device.c mirror-subr.c log-internal.c -I ~/libusb/include/libusb-1.0 -I ~/libnfc-libusb10/include -I ~/libnfc-libusb10/contrib/win32 -I ~/libnfc-libusb10/libnfc -L ~/lisbusb/bin/libusb-1.0.dll.a -static -lusb-1.0
- Linker –>
gcc -shared -o libnfc.dll nfc.o target-subr.o iso14443-subr.o usbbus.o acr122_usb.o nfc-internal.o nfc-device.o pn53x.o mirror-subr.o -L ~/lisbusb/lib/libusb-1.0.dll.a -lusb-1.0
Téléchargement libnfc.dll.zip qui fonctionne avec libusb 1.0 pour Windows 64:
contenu du zip libusb :
Télécharger libusb-1.0.dll et ses dépendances pour Windows 64:
21 janvier 2020 – Convertisseur en 1 click de dumps android mifare classic <–> linux/windows nfc- mfc classic
Ce petit logiciel convertit les dumps Mifare classic tool en dumps nfc mfc classic et réciproquement
Comment l’utiliser : démarrez simplement le logiciel « mct2dmpGui.exe », ensuite , ouvrez le dump à convertir en cliquant sur « Convert », puis enregistrez le dump converti ou vous voulez
Ce logiciel utilise le dotnet framework 4.7.2 , vous pouvez le télécharger ici, dans le menu « releases »: https://github.com/xavave/bm-mifare-classic/releases
L’application detecte automatiquement si c’est un dump Mifare classic tool (texte) ou bien un dump nfc-mfc classic (binaire) et convertit selon le cas d’un format vers l’autre
Télécharger les sources et l’executable sur mon github –> https://github.com/xavave/bm-mifare-classic/wiki
nouveau 22 janvier 2020 : tous les outils cités dans cet article, dans un fichier zip (plus pratique), incluant le dernier nfc-mfcclassic avec l’option C (pour les tags chinois) et l’outil : nfc detect chinese magic card ainsi que libnfc_crypto_crack.exe –> téléchargement :
Contenu du zip :
cropto1_bs.exe
libgcc_s_seh-1.dll
liblzma-5.dll
libnfc.dll
libnfc_crypto_crack.exe
libusb0.dll
libwinpthread-1.dll
mfcuk_keyrecovery_darkside.exe
mfoc.exe
mfoc_hardnested.exe
nfc-anticol.exe
nfc-barcode.exe
nfc-dep-initiator.exe
nfc-dep-target.exe
nfc-detect-chinese-magic-card.exe
nfc-emulate-forum-tag2.exe
nfc-emulate-forum-tag4.exe
nfc-emulate-tag.exe
nfc-emulate-uid.exe
nfc-jewel.exe
nfc-list.exe
nfc-mfclassic.exe
nfc-mfsetuid.exe
nfc-mfultralight.exe
nfc-poll.exe
nfc-read-forum-tag3.exe
nfc-relay-picc.exe
nfc-relay.exe
nfc-scan-device.exe
pn53x-diagnose.exe
pn53x-sam.exe
pn53x-tamashell.exe
solve_bs.exe
Thanks for the nfc related tools, they resolve my problem on ACR122U.