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

Nfc Tools on Windows – Table of contents


  • Introduction –> link
  • How tu use ACR122U with libusbK –> link
  • Mifare One Tool English –> link
  • How to cross compile NFC commands on Windows 64 bits –> link
  • Sharp Free fare (libfreefare dotnet wrapper) + sharpNfc update –> link
  • libnfc compiled with lib usb 1.0 for Windows –> link
  • One click dump converter : android mifare classic tool  <–>  linux/windows libnfc nfc- mfc classic –> link
  • download all tools in one zip file –> link

Introduction

I’ve recently cross compiled libnfc and nfc utils , following this post : https://github.com/peacepenguin/libnfc-unofficialbuilds

I had a driver issue for using libnfc/nfc utils with my ACR122U (No NFC device found issue), but using LibUsbK, solved this problem.

  • How tu use ACR122U with libusbK –> link

Here are the working  binaries on windows 10 64x and the acr 122U LibusbK driver installer

  • mfoc.exe, mfoc_hardnested.exe, mfcuk.exe, nfc-mfcclassic.exe, cropto1_bs.exe, nfc-list.exe, nfc-scan-device.exe, …
    • Compiled binary files (mfoc.exe, mfcuk.exe + mfcuk hardnested.exe, cropto1_bs, …) –> link 
    • Compiled binary mfoc hardnested version –> link
    • Compiled binary files : libnfc 64 bits – zip  (nfc–mfcclassic.exe, nfc-list.exe, …) –> link
  • if you get an error : missing libwinpthread-1.dll or missing libgcc_s_seh-1.dll, these dll are included  in download link in this section

 

How tu use ACR122U with mfoc ,cropto1_bs.exe, mfcuk.exe, nfc-mfcclassic.exe on windows 10 ?

To use most of the exe tools I’ve cross-compiled, you may need to install libusbK driver which is a wrapper over ACR-122U native driver :

  1. Install Native driver can be found here : https://www.acs.com.hk/en/driver/3/acr122u-usb-nfc-reader/  –> MSI Installer for PC/SC Driver
  2. You can download libusbk here: https://sourceforge.net/projects/libusbk/
  3. Install Libusbk driver

 

After installing libusbK driver, the ACR122U will show NO light, and NO sound when putting a tag on it. It’s normal, and the sound and light will come back if you unsinstall libusk Driver filter


 


How to cross compile NFC commands  on windows 64


Mfoc (https://github.com/nfc-tools/mfoc) cross-compilation for windows :

on Linux Ubuntu using build_mfoc.sh :

content of build_mfoc.sh :

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

then

cd mfoc/src

chmod +x build_mfoc.sh

./build_mfoc.sh

Cropto1_bs (https://github.com/vk496/cropto1_bs) cross compilation on windows : (compiled on windows 64 with msys2: http://www.msys2.org/ –> x86-x64 version)

note : to install gcc on msys2 you can follow this post : https://www.devdungeon.com/content/install-gcc-compiler-windows-msys2-cc

command :

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 for windows from ubuntu or Mingw64:

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 for windows from 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

 

new on 7 january 2020 : mfoc hardnested windows 64x version, based on https://github.com/vk496/mfoc/tree/hardnested

 

commands used for cross-compilation : (some small changes had to be done in source files before compiling – e.g. for fixing make install errors and update version name)

(in windows mingw64) :

autoreconf -vis

automake

make install

fixing mfoc compile errors when running make install :

  • fatal error : nfc/nfc.h : No such file or directory

  • – copy libnfc\include\nfc folder to mfoc\src\ folder and edit mfoc.c file in mfoc.src:

replace :

#include <nfc/nfc.h>

with

#include "nfc/nfc.h"
  • fatal error : err.h : No such file or directory

  • copy  libnfc\contrib\win32\err.h to to mfoc\src\ and edit file nfc-utils.h in mfoc\src\

replace :

# include <err.h>

with :

# include "err.h"

and re-run :

make-install

  • if no error then ,mfoc.exe should now be created in mfoc/src directory

  • test screenshot :


Sharp free fare – 2020 january 15th

I’ve also updated C# library wrapper for sharpNfc and Sharp free fare, now based on cross compiled libnfc.dll and libfreefare.dll:

https://github.com/episage/sharp-free-fare


2020 january 17th : libnfc fork – working with libusb1.0 on Windows 64

I’ve now cross-compiled libusb1.0 on windows 64 using this : https://github.com/FPGAwars/libusb-cross-builder

Then I’ve compiled and built (after some fixes in #include ref in source code), libnfc fork – working with libusb1.0 : https://github.com/nfc-tools/libnfc/tree/libusb10

note : I’ve only defined ACR122 usb driver for compilation, no other driver

 

Mingw64 cross-compilation command :

  • edit 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
}
  • compile –>
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
  • build –>
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

Download libnfc.dll.zip working with libusb 1.0 for Windows 64:


content of libusb zip file :

Download libusb-1.0.dll and dependencies for Windows 64:


To use : Simply run the app : mct2dmpGui.exe then, open the input dump by clicking on “Convert” and save the converted file

This app use dotnet framework 4.7.2 and you can download it in release menu : https://github.com/xavave/bm-mifare-classic/releases

The app will automaticaly detect if it’s a Mifare classic tool dump or a nfc-mfc classic dump

download sources/binaries on github –> https://github.com/xavave/bm-mifare-classic/wiki


new on 2020 – jan – 22 : All tools Zipped in one file including latest nfc-mfcclassic with C option and tool : nfc detect chinese magic card and also libnfc_crypto_crack.exe –>

zip content :

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

1758 Downloads

 

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

About Xavier

7 years+ .net consulting

19 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

Your email address will not be published. Required fields are marked *

Captcha * Time limit is exhausted. Please reload CAPTCHA.

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