NFC Tools, a cool application for working with NFC tags and a PC/SC reader

Today we’re going to offer you an article that’s a little different from our usual fare, since it’s less about going into the details of how to implement a SpringCard product than about presenting a small piece of software that can help you discover the world of NFC and contactless smart cards.

It’s called NFC Tools, and has been developed by Wakdev.

Standard disclaimer: there is no connection between SpringCard and Wakdev; the aim of this article is just to introduce a small piece of software that may be relevant to SpringCard customers, nothing more.

NFC Tools for Android and iOS

For most geeks interested in the NFC capabilities of their smartphones, NFC Tools must already be fairly well known. The application is well referenced on the Play Store (Android) and the App Store (iOS). Its basic version is free.

NFC Tools identifies a chip by analyzing its protocol data and its metadata. The application can thus tell us which manufacturer and reference is behind any 13.56MHz badge or contactless smart card. When the chip complies with the specifications of an NFC Forum Tag, NFC Tools lets you manipulate its content (NDEF message) and can easily be used to program your own Tags.

On Android smartphones with a full NXP chipset and CRYPTO1 support, NFC Tools is one of the few applications capable of correctly analysing a Mifare Classic card:

The Pro version (for a fee) allows you to emulate an NFC Tag using the smartphone’s HCE mode.

NFC Tools for desktop

But at SpringCard’s we’re most interested in NFC Tools for Desktop, the version for PC and Mac (Windows, Linux and macOS) that works with all SpringCard PC/SC couplers.

Here’s the presentation link:
https://www.wakdev.com/en/apps/nfc-tools-pc-mac

The Windows version is a simple ZIP archive. You can see that it is a Java application, but packaged to be standalone, with an entry point in the form of an EXE program and its complete execution environment in a sub-directory.

Before launching the application, you need to connect a compatible PC/SC reader, such as a SpringCard Prox’N’Roll, a Puck, an M519, etc. The software automatically connects to the products it supports. We’ll be testing with a Puck One.

You can see which reader has been selected, and make another choice if necessary, in the Options tab.

When a tag is placed on the reader, the application tries to identify it on the basis of its UID and its ATR (not all protocol data is made accessible by the PC/SC standard, which limits the possibilities of analysis when you want to remain 100% compatible with all products on the market, without relying on proprietary extensions).

Here we have a T5T (Type 5 NFC Forum Tag) from ST MicroElectronics. This information can be deduced from the E00225 header of the UID:

Here we have an NXP Mifare Classic 1K card. This time, the type information is given by the ATR built by the coupler, since the 4-byte UID does not provide any information:

But when it’s a T=CL card (i.e. ISO/IEC 14443 compliant up to the transport layer), in accordance with the PC/SC standard, the coupler constructs a completely generic T=1 card ATR, and no relevant information can be given (for information, this is a brand new NXP Mifare DuoX card):

The application’s Memory tab lets you view the contents of any memory card, provided it is supported by the PC/SC couplers. This is particularly the case for Type 2 NFC Forum tags (Mifare UltraLight or NTAG chips, as well as their clones from NXP’s competitors), and all ISO/IEC 15693 chips that can be used as Type 5 NFC Forum tags. It is also possible to read Mifare Classic cards, as long as they use CRYPTO1 keys known to the application and/or to the coupler:

The Write tab lets you encode NFC Forum (NDEF) content in a compatible Tag:

Here we’re going to write the traditional URL www.springcard.com so that a smartphone automatically opens its web browser to this page when we present this tag:

Now we write the Tag:

And we can read it back in the Information tab:

Conclusion

Wakdev’s NFC Tools is a cool project and a great way to discover memory cards and RFID tags, and especially to manipulate NFC tags and their contents.

Of course, NFC Tools is not intended to master high-end contactless smart cards. You’ll be completely stuck as soon as you expect to run a secure transaction, for example if you’re dreaming of making a slightly advanced Type 4 Tag with private zones on a Desfire or JavaCard. But in 80% of cases where Tags are used – if not more – NFC Tools in its PC or mobile form should do the trick.

Great work, Julien, and thank you so much for making it available for free or for a small fee.


Tags:

Comments

Leave a Reply

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