Your company here — click to reach over 10,000 unique daily visitors

nfc-mfclassic - Man Page

MIFARE Classic command line tool


nfc-mfclassic f|r|R|w|W a|A|b|B u|U<uid> DUMP [ KEYS [f] ]


nfc-mfclassic is a MIFARE Classic tool that allow to read or write DUMP file using MIFARE keys provided in KEYS file.

MIFARE Classic tag is one of the most widely used RFID tags.

The firmware in the NFC controller supports authenticating, reading and writing to/from MIFARE Classic tags. This tool demonstrates the speed of this library and its ease-of-use. It's possible to read and write the complete content of a MIFARE Classic 4KB tag within 1 second. It uses a binary MIFARE Dump file (MFD) to store the keys and data for all sectors.

Be cautious that some parts of a MIFARE Classic memory are used for r/w access of the rest of the memory, so please read the tag documentation before experimenting too much!

The f option to format the card will reset all keys to FFFFFFFFFFFF, all data to 00 and all ACLs to default.

The W option allows writing of special MIFARE cards that can be 'unlocked' to allow block 0 to be overwritten. This includes UID and manufacturer data. Take care when amending UIDs to set the correct BCC (UID checksum). Currently only 4 byte UIDs are supported.

Similarly, the R option allows an 'unlocked' read. This bypasses authentication and allows reading of the Key A and Key B data regardless of ACLs.

R/W errors on some blocks can be either considered as critical or ignored. To halt on first error, specify keys with lowercase ( a or b ). To ignore such errors, use uppercase ( A or B ).

When using multiple tags infront of a reader, the U option can be used to supply the UID of tag to be read or written. Append the hexadecimal UID to the U option. For example U01ab23cd for the 4 byte UID 0x01 0xab 0x23 0xcd. Using the u parameter instead will use whatever libnfc decides which generally is the lowest UID.

*** Note that W and R options only work on special versions of MIFARE 1K cards (Chinese clones).


f | r | R | w | W

Perform format ( f ) or read from ( r ) or unlocked read from ( R ) or write to ( w ) or unlocked write to ( W ) card.

a | A | b | B

Use A or B MIFARE keys. Halt on errors ( a | b ) or tolerate errors ( A | B ).

u | U

Use the default UID ( u ) or supply a valid 4 byte UID ( U<uid> ).


MiFare Dump (MFD) used to write (card to MFD) or (MFD to card)


MiFare Dump (MFD) that contains the keys (optional). Data part of the dump is ignored.


Force using the keyfile KEYS even if UID does not match (optional).


Please report any bugs on the libnfc issue tracker at:


libnfc is licensed under the GNU Lesser General Public License (LGPL), version 3.
libnfc-utils and libnfc-examples are covered by the the BSD 2-Clause license.


Adam Laurie <adam@algroup.co.uk>,
Roel Verdult <roel@libnfc.org>,
Romain Tartière <romain@libnfc.org>,
Romuald Conty <romuald@libnfc.org>.

This manual page was written by Romuald Conty <romuald@libnfc.org>. It is licensed under the terms of the GNU GPL (version 2 or later).


Nov 02, 2009 libnfc NFC Utilities