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.