The testing device should be a Nokia N9 running MeeGo 1.2 Harmattan. Device needs to be inception’d. Needs to have ssh installed with public key authentication as well as opensh. It needs to have gdb installed on it. It needs a file called gdb.commands in the /home/user directory of the phone with contents:

set pagination off 
set logging on
run file://bad.ppt 
ir
bt 
q 
y

The Linux host needs to able to run the various examples in the libnfc-1.5.1 utils directory. I used Ubuntu 11.10.
It requires a D-Link Corp. DUB-H7 7-port USB 2.0 hub and an ACS ACR122U NFC or SCL3711 reader plugged into its last port.

libnfc-1.5.1
This tree starts from the original libnfc-1.5.1 but has modifications. In the utils directory you can find additional/modified files. The rest is untouched.

n9_fuzz_ndef-type4.py
This file fuzzes ndef’s using Type 4 transactions. The IP address is hard coded. It expects testcases to be in a file called bitflip.out in the same directory. It needs to be run in the utils directory of libnfc as root. It should be run with the ACR 122U.

fuzz_memory-type2.py
This file fuzzes the MiFare UL memory structure before the NDEF field. It reads in fuzzed values from bitflip.out, writes them to a file called test.out that nfc-emulate-forum- tag2 has been modified to look for. The file test.out has a copy of the whole UL card memory. It needs to be run in the utils directory of libnfc as root. It should be run with the SCL3711.

n9_fuzz_memory-type4.py
This file fuzzes the Capability Container of a Type 4 transaction. It reads Capability Containers from bitflip.out and then writes them into a file called cc.out that nfc-emulate- forum-tag4 has been modified to look for. It needs to be run in the utils directory of libnfc as root. It should be run with the ACR 122U.

nfcpy
This is a modified version of the nfcpy software suite.

fuzz-connect.py
This file fuzzes the Connect LLCP PDU. It reads the PDU’s from a file called bitflip.out and places it in connect-pdus.out so that a modified npp-test-client.py (actually other files in the framework were modified, but this is the main script) will use it. It needs to be run in the examples directory as root and should be run with the ACR 122U.

fuzz-information.py
This file fuzzes the I (Information) LLCP PDU. It reads the PDU’s from a file called bitflip.out and places it in information-pdus.out so that a modified npp-test-client.py (actually other files in the framework were modified, but this is the main script) will use it. It needs to be run in the examples directory as root and should be run with the ACR 122U.
