NFC APDU Runner
March 21, 2025 · View on GitHub
NFC APDU Runner is a Flipper Zero application for reading and executing APDU commands on NFC cards. This application allows users to load APDU commands from script files, send them to NFC cards, and view the response results. It also includes NARD (NFC APDU Runner Response Decoder) for parsing and analyzing APDU responses using customizable format templates, and TLV data extraction capabilities. The project now supports a Web interface analysis platform for more comprehensive NFC data analysis and visualization.
Features
- Support for loading APDU commands from script files
- Web interface analysis platform for comprehensive NFC data analysis and visualization
- Support for multiple card types (ISO14443-4A and ISO14443-4B implemented)
- User-friendly interface with operation prompts
- Execution logging for debugging
- Ability to save execution results to files
- NARD (NFC APDU Runner Response Decoder) for parsing and analyzing APDU responses
- Template-based decoding of APDU responses with custom format templates
- TLV data extraction and parsing capabilities
Installation
- Download the latest release from the Releases page
- Extract the zip file
- Copy the
nfc_apdu_runner.fapfile to the/ext/apps/NFC/directory on your Flipper Zero - Copy the files from
apdu_scriptdirectory to the/ext/apps_data/nfc_apdu_runner/directory on your Flipper Zero(If not exist, create it)
Tools
This project includes additional tools to enhance functionality:
- nfc_analysis_platform - A comprehensive platform for NFC data analysis, including:
- NARD (NFC APDU Runner Response Decoder) - Parse and decode
.apduresfiles using customizable format templates - TLV Parser - Extract and analyze Tag-Length-Value data structures from NFC communications
- Web API Server - Access NFC analysis functionality through a RESTful API interface
- NARD (NFC APDU Runner Response Decoder) - Parse and decode
Supported Card Types
- ISO14443-4A (implemented)
- ISO14443-4B (implemented)
- ISO14443-3A (APDU commands not supported)
- ISO14443-3B (APDU commands not supported)
Script File Format
Script files use the .apduscr extension with the following format:
Filetype: APDU Script
Version: 1
CardType: iso14443_4a
Data: ["00A4040007A0000002471001", "00B0000000"]
Where:
Filetype: Fixed as "APDU Script"Version: Current version is 1CardType: Card type, can be iso14443_4a, iso14443_4b, iso14443_3a, or iso14443_3bData: List of APDU commands, each command as a hexadecimal string
Response File Format
Execution results will be saved as files with the .apdures extension in the following format:
Filetype: APDU Script Response
Response:
In: 00A4040007A0000002471001
Out: 9000
In: 00B0000000
Out: 6A82
Usage
- Launch the NFC APDU Runner application on Flipper Zero
- Select "Load Script" to load an APDU script file
- Place the NFC card on the back of the Flipper Zero
- Click "Run" to execute APDU commands
- View the execution results
- Choose to save or discard the results
File Storage Location
- Script files are stored in the
/ext/apps_data/nfc_apdu_runner/directory - Response files will also be saved in the same directory, with the same filename but with the
.apduresextension
Development Information
- Author: SpenserCai
- Version: 0.3
- License: GNU General Public License v3.0
Notes
- The application requires NFC cards that support APDU commands
- ISO14443-3A and ISO14443-3B cards do not support APDU commands
- Ensure the card is placed correctly so that Flipper Zero can read it
Troubleshooting
If you encounter issues:
- Make sure the card type matches the type specified in the script file
- Ensure the card is placed correctly
- Check if the APDU command format is correct
- View the execution logs for detailed information
Example Scripts
ISO14443-4A Example
Filetype: APDU Script
Version: 1
CardType: iso14443_4a
Data: ["00A4040007A0000002471001", "00B0000000"]
This example script will select the application with AID A0000002471001 and then read data.
ISO14443-4B Example
Filetype: APDU Script
Version: 1
CardType: iso14443_4b
Data: ["00A4040007A0000002471001", "00B0000000"]
This example script will execute the same commands on an ISO14443-4B card.
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.