CLI for interacting with Mifare Classic 1K cards using an ACR122U NFC reader.
Project description
RFID Client
This is a command-line interface (CLI) application for interacting with Mifare Classic 1K cards using a NFC reader.
Installation
Linux requires some libraries to be installed:
sudo apt-get update
sudo apt-get install libpcsclite-dev libpcsclite1 pcscd pcsc-tools
Installation through pip package manager
pip3 install crid
Installation from source
git clone https://github.com/VinnieV/crid.git
cd crid
pip3 install .
If the crid
command is not available after using any of these installation methods, please review the detailed installation walkthrough below.
Executing from source:
git clone https://github.com/VinnieV/crid.git
cd crid
pip3 install -r requirements.txt
python3 main.py
Usage/Examples
# Read the UID of the card
crid --read_uid
# Identify the card to the user
crid --identify
# Read a block from the card using key type A and key value ffffffffffff
crid --read_block 2 --key_type A --key_value ffffffffffff
# Write "Hello, World!" to block 3 using key type B and key value a1b2c3d4e5f6
crid --write_block 3 --data "48656C6C6F2C20576F726C6421" --key_type B --key_value a1b2c3d4e5f6
# Read sector 1 from the card using key type A and key value ffffffffffff
crid --read_sector 1 --key_type A --key_value ffffffffffff
# Read all 16 sectors from the card using key type B and key value a1b2c3d4e5f6
crid --read_full --key_type B --key_value a1b2c3d4e5f6
# Find keys for a Mifare Classic card (requires mfoc binary)
crid --find_mifare_keys
# Brute force keys for block 18 using the key list file keys.txt
crid --brute_force_keys 18 --key_list mifare_access_keys_top100.lst
# Mute the buzzer on the reader
crid --mute
# Provide the flag option
crid --flag
# Enable the buzzer on the reader
crid --beep
# Set the log level to DEBUG
crid --log_level DEBUG
# Send an APDU command to the NFC device
crid --apdu_command 00A4040007A000000003101000
# Set the data format to string
crid --data_format string
API Reference
The main class in this project is RFIDClient within the cli.py
source file which provides methods to interact with the NFC reader and the Mifare Classic 1K card.
Detailed Installation Walkthrough
To install the RFID Client application, follow the steps below:
-
Clone the repository using the following command:
git clone https://github.com/VinnieV/crid.git
-
Navigate to the cloned repository:
cd crid
-
If you have Python 3 installed, pip3 should be available. If not, you can install Python 3 and pip3 by following the instructions provided in the links below:
-
Install the application using pip3. There are two ways to install pip packages: as a user or system-wide. Choose the appropriate method based on your requirements:
System-wide:
pip3 install .
User-wide:
pip3 install . --user
-
Add the Python Scripts directory to your PATH environment variable. This step is necessary to ensure that the
crid
binary is accessible from anywhere in the command prompt or terminal. The process for adding the Python path to the PATH variable differs between Windows and Linux:-
Windows:
- Open the Start menu and search for "Environment Variables".
- Click on "Edit the system environment variables".
- In the System Properties window, click on the "Environment Variables" button.
- In the "System Variables" section, select the "Path" variable and click on "Edit".
- Execute the following command to retrieve the path:
pip3 show crid
- Based on the Location listed there you can find the Python Scripts folder, the path should look something similar like this:
c:\users\<username>\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\Scripts
- Click "OK" to save the changes.
-
Linux:
- Open a terminal window.
- Edit the
.bashrc
or.bash_profile
file in your home directory using a text editor (e.g.,nano ~/.bashrc
). - Add the following line at the end of the file, replacing
<username>
with the your linux username:
export PATH="/home/<username>/.local/bin/:$PATH"
- Save the file and exit the text editor.
- Run the following command to apply the changes:
source ~/.bashrc
-
Once you have completed these steps, you should be able to use the RFID Client application successfully.
Build for distributing
pip3 install --upgrade build
python3 -m build
pip3 install --upgrade twine
python3 -m twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file crid-0.2.0.tar.gz
.
File metadata
- Download URL: crid-0.2.0.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f1c3a97498d02521ad3dda0acf626f8794fd6ed4753c8c291ed1878c2c63332 |
|
MD5 | 533823029a045ad84770762eae968683 |
|
BLAKE2b-256 | de0201cfc59265e899bc1dbb3e8b73fc44de0526a9a841bcc10439402f3a8af8 |
File details
Details for the file crid-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: crid-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20fa2576f21c4ac8a22ee0684e3675f5de4b9de7374729230fafea7643bc4ef7 |
|
MD5 | 0bf8d38bdb83daa9ca826a5daf95ec50 |
|
BLAKE2b-256 | f7cb0b43856aabc459440d4783ad37c625ebadab405215a2899d5419c563b6c0 |