Libnfc and nfc utils binaries (cross compile mfoc.exe , cropto1_bs.exe, mfcuk.exe, nfc-mfcclassic.exe) for Windows 10

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  ?

  1. Installer le pilote ACR 122U d’origine dispo ici : https://www.acs.com.hk/en/driver/3/acr122u-usb-nfc-reader/
  2. Télécharger libusbk : https://sourceforge.net/projects/libusbk/
  3. 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

2913 Downloads

 

Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

About Xavier

7 years+ .net consulting

20 Responses to Libnfc and nfc utils binaries (cross compile mfoc.exe , cropto1_bs.exe, mfcuk.exe, nfc-mfcclassic.exe) for Windows 10

  1. YIN PO LIN says:

    I have tried to compile nfc utils by myself on window 10 for serveral days. I tried many many times, but failed at last. Today I found your blog, and downloaded libusbk and nfc tools. Now I can finally use my ACR122U reader on windows 10! Thank you.

  2. Anthony says:

    Bonjour, Superbe travail.
    Je suis à la recherche ou voir si c’est possible de faire un emulateur qui dès la détection d’un badge va copier la valeur où se trouve le curseur de l’ordinateur.
    Auriez-vous cela en stock?
    Cordialement
    Anthony

  3. Marucins says:

    Hi
    Do you still read messages from this post?
    Because I have a question for You. 🙂

    I wonder if your tool will support such a device?
    MTools All-In-One PN532 (https://shop.mtoolstec.com/product/mtools-all-in-one-pn532)

    MTools All-In-One PN532 uses these drivers
    Windows: http://www.wch.cn/download/CH341SER_EXE.html
    macOS: http://www.wch.cn/download/CH341SER_MAC_ZIP.html

    The file “mfoc.exe” from your package sees the NFC reader. But the whole package “MifareOneTool-English version 1.7.7204” has a problem with this.
    https://i.postimg.cc/tTYTm8Cs/Mifare-One-Tool-2020-06-30-16-03-26.png

    What else do I need to install (which driver) for the device to be detected?

    Thank You for your help.

  4. Eru says:

    its ok only need libusbk for it runs.
    well man thx a lot it saved to me few hours

  5. Eru says:

    Hello, in a first thx for your efforts.

    I have a question, las package with all exe, are they up to use or need solve dependencies?
    Thx again

Leave a Reply to Eru Cancel reply

Your email address will not be published.

Captcha * Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.