### Setup Environment Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/docker/termux-README.md Installs necessary dependencies and clones the Proxmark3 repository. ```bash pkg install make clang readline libc++ git binutils libgd pip install sslcrypto ansicolors git clone https://github.com/RfidResearchGroup/proxmark3.git ``` -------------------------------- ### Install Client Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the client components. It is one of the individual targets triggered by 'make install'. ```bash make client/install ``` -------------------------------- ### Create Application Command Example Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/unofficial_desfire_bible.md Example command to create an application with a specific AID and key configuration. ```text CA 01 00 00 0F 81 ``` -------------------------------- ### Proxmark3 Documentation Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md Documentation for Proxmark3 is installed in /usr/local/share/doc/proxmark3. ```bash /usr/local/share/doc/proxmark3 ``` -------------------------------- ### Upgrade Firmware with Absolute Paths Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Troubleshooting.md Example of using the 'smart upgrade' command with an absolute path to the firmware binary. This is relevant when the Proxmark3 client is installed system-wide. ```bash pm3 --> smart upgrade -f /usr/local/share/proxmark3/firmware/sim014.bin ``` ```bash pm3 --> smart upgrade -f /usr/share/proxmark3/firmware/sim014.bin ``` -------------------------------- ### Install MFKey Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the MFKey components. It is one of the individual targets triggered by 'make install'. ```bash make mfkey/install ``` -------------------------------- ### Install with Custom Documentation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md Modify the installation path for documentation to comply with distribution policies. ```makefile make install PREFIX=/usr INSTALLDOCSRELPATH=share/doc/proxmark3-${version} ``` -------------------------------- ### Install Binaries Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md Install the compiled files to system directories. This step is optional and requires adjusting command paths if skipped. ```sh sudo make install ``` -------------------------------- ### Install with Custom Paths Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md Specify installation directories for the main prefix and udev rules. DESTDIR can be used to prepend a path for staging. ```makefile make -j make install DESTDIR=build PREFIX=/usr UDEV_PREFIX=/lib/udev/rules.d ``` -------------------------------- ### Example ht2crack5opencl Run Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/tools/hitag2crack/crack5opencl/README.md A simple example demonstrating the tool's execution with a UID and encrypted nonce/response pairs. ```bash ./ht2crack5opencl 2ab12bf2 4B71E49D 6A606453 D79BD94B 16A2255B ``` -------------------------------- ### Install cross-platform dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/docker/debian-13-trixie-armhf/README.md Installs QEMU user-mode emulation and binfmt support to enable cross-platform execution. ```bash sudo apt install qemu-user qemu-user-binfmt binfmt-support ``` -------------------------------- ### Flash Firmware with Absolute Paths Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Troubleshooting.md Examples of flashing the full image using the proxmark3 executable with an absolute path to the firmware file. This is useful when the client is installed system-wide. ```bash proxmark3 --flash --image /usr/local/share/proxmark3/firmware/fullimage.elf ``` ```bash proxmark3 --flash --image /usr/share/proxmark3/firmware/fullimage.elf ``` -------------------------------- ### Install FPGA Compress Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the FPGA compress components. It is a dummy target and one of the individual targets triggered by 'make install'. ```bash make fpga_compress/install ``` -------------------------------- ### Install Nonce2Key Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the Nonce2Key components. It is one of the individual targets triggered by 'make install'. ```bash make nonce2key/install ``` -------------------------------- ### Install Proxmark3 Executable Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/client/CMakeLists.txt Installs the proxmark3 target executable to the 'bin' directory. ```cmake install(TARGETS proxmark3 DESTINATION "bin") ``` -------------------------------- ### Install build dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-WSL2-Installation-Instructions.md Installs the necessary packages to compile Proxmark3 binaries on Ubuntu. ```sh sudo apt-get install --no-install-recommends \ git ca-certificates build-essential pkg-config \ libreadline-dev gcc-arm-none-eabi libnewlib-dev \ libbz2-dev liblz4-dev zlib1g-dev libpython3-dev qtbase6-dev \ libssl-dev libgd-dev ``` -------------------------------- ### Proxmark3 Trace Files Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md Sample trace files for low-frequency tags are installed in /usr/local/share/proxmark3/traces. ```bash /usr/local/share/proxmark3/traces ``` -------------------------------- ### Setup VS Code Configuration Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/VSCode-Installation-Instructions.md Runs a setup script to configure Visual Studio Code for the project. This should be executed from your project folder. ```shell ./.vscode/setup.sh ``` -------------------------------- ### Install Makefile Dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md Optional: Install `recode` and `astyle` if you need them for makefile operations. ```bash brew install recode ``` ```bash brew install astyle ``` -------------------------------- ### Install astyle for Code Formatting Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-Installation-Instructions.md Install the 'astyle' package using pacman if you plan to contribute to the project and use 'make style'. ```shell pacman -S mingw-w64-x86_64-astyle ``` -------------------------------- ### Cliparser Implementation Examples Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/cliparser.md Examples of commands that have been adapted to use the Cliparser library. ```text [usb] pm3 --> emv [usb] pm3 --> hf fido ``` -------------------------------- ### Proxmark3 Interactive Prompt Example Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/1_Validation.md This is an example of the Proxmark3 interactive prompt output, showing system information and readiness for commands. ```bash [=] Session log /home/iceman/.proxmark3/logs/log_20230208.txt [+] loaded from JSON file /home/iceman/.proxmark3/preferences.json [=] Using UART port /dev/ttyS3 [=] Communicating with PM3 over USB-CDC 8888888b. 888b d888 .d8888b. 888 Y88b 8888b d8888 d88P Y88b 888 888 88888b.d88888 .d88P 888 d88P 888Y88888P888 8888" 8888888P" 888 Y888P 888 "Y8b. 888 888 Y8P 888 888 888 888 888 " 888 Y88b d88P 888 888 888 "Y8888P" [ ☕ ] [ Proxmark3 RFID instrument ] MCU....... AT91SAM7S512 Rev A Memory.... 512 Kb ( 66% used ) Client.... Iceman/master/v4.16191 2023-02-08 22:54:30 Bootrom... Iceman/master/v4.16191 2023-02-08 22:54:26 OS........ Iceman/master/v4.16191 2023-02-08 22:54:27 Target.... RDV4 [usb] pm3 --> ``` -------------------------------- ### Install optional makefile dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md Install additional tools for code formatting and recreation. ```bash sudo port install recode astyle ``` -------------------------------- ### Command Line Usage Examples Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/cliparser.md Examples of various command-line inputs that utilize the parsing system. ```text data xxxx h script run x.lua -h hf 14a raw -h hf 14b raw -ss lf search 1 lf config h H ``` -------------------------------- ### Install Proxmark3 via Homebrew Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md Installs the Proxmark3 package using the arm64 architecture prefix. ```bash arch -arm64 brew install --HEAD --with-blueshark proxmark3 ``` -------------------------------- ### Install Proxmark3 Dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-Installation-Instructions.md Installs the necessary build tools and libraries for the Proxmark3 client. ```sh sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \ libreadline-dev gcc-arm-none-eabi libnewlib-dev qt6-base-dev \ libbz2-dev liblz4-dev zlib1g-dev libpython3-dev libssl-dev libgd-dev ``` -------------------------------- ### Install build dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md Install the required development tools and libraries via MacPorts. ```bash sudo port install \ gd2 \ lz4 \ qt6 \ bzip2 \ lua54 \ jansson \ readline \ coreutils \ openssl11 \ pkgconfig \ python312 \ qt6-qtbase \ py312-pexpect \ py312-bitstring \ py312-sslcrypto \ py312-ansicolors \ arm-none-eabi-gcc \ arm-none-eabi-binutils ``` -------------------------------- ### Install USBIPD via Winget Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-WSL2-Installation-Instructions.md Use the Windows Package Manager to install the USBIPD tool on the host machine. ```cmd winget install usbipd ``` -------------------------------- ### Install Proxmark3 Resource Directories Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/client/CMakeLists.txt Installs various resource directories (cmdscripts, lualibs, etc.) to 'share/proxmark3'. ```cmake install(DIRECTORY cmdscripts lualibs luascripts pyscripts resources dictionaries DESTINATION "share/proxmark3") ``` -------------------------------- ### Compile and Install Tagged Firmware Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md Compile a specific firmware image with a custom tag and install it to a staging directory. ```makefile make -j fullimage PLATFORM=PM3GENERIC PLATFORM_EXTRAS= make fullimage/install PLATFORM=PM3GENERIC PLATFORM_EXTRAS= DESTDIR=build PREFIX=/usr FWTAG=generic ``` -------------------------------- ### Install Proxmark3 via Homebrew Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/bt_manual_v10.md Commands to install the Proxmark3 client and firmware with Bluetooth support on macOS. ```bash brew tap rfidresearchgroup/proxmark3 ``` ```bash brew install --with-blueshark proxmark3 ``` -------------------------------- ### Install Proxmark3 via Homebrew Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md Use these commands to install the stable or latest development version of Proxmark3, with or without blueshark support, or for generic devices. ```bash brew install proxmark3 ``` ```bash brew install --HEAD proxmark3 ``` ```bash brew install --with-blueshark proxmark3 ``` ```bash brew install --HEAD --with-blueshark proxmark3 ``` ```bash brew install --with-generic proxmark3 ``` ```bash brew install --HEAD --with-generic proxmark3 ``` -------------------------------- ### Example ht2crack5opencl with Specific OpenCL Configuration Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/tools/hitag2crack/crack5opencl/README.md An example showing how to select specific OpenCL platforms and devices, along with a random queue engine, for the cracking process. ```bash ./ht2crack5opencl -D 2 -Q 2 -p 1,2 -d 1,2,3 2ab12bf2 4B71E49D 6A606453 D79BD94B 16A2255B ``` -------------------------------- ### Proxmark3 Binaries and Scripts Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md Executables and shell scripts for the Proxmark3 client are installed in /usr/local/bin. Additional tools are placed in /usr/local/share/proxmark3/tools. ```bash /usr/local/bin/ ``` ```bash /usr/local/share/proxmark3/tools ``` -------------------------------- ### Install Proxmark3 Dependencies on openSUSE Leap 15.6 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md Installs necessary development tools, libraries, and cross-compilers for Proxmark3 on openSUSE Leap 15.6. Includes Qt5 development files. ```shell sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \ readline-devel libbz2-devel liblz4-devel zlib-devel \ python3-devel libqt5-qtbase-devel libopenssl-devel gd-devel sudo zypper addrepo https://download.opensuse.org/repositories/home:wkazubski/15.6/home:wkazubski.repo && \ sudo --gpg-auto-import-keys refresh && \ sudo zypper install cross-arm-none-eabi-gcc15 cross-arm-none-eabi-newlib ``` -------------------------------- ### Example Hash File Content Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/iclass_legrec_legbrute_key_recovery.md An example of the content for a hash file used with Hashcat, following the specified format. ```text $iclass_leg$0401020505000205$feffffffffffffff1306cad9$b6c24466$fefffffffffffffff0bf905e$35f97923 ``` -------------------------------- ### Run Proxmark3 Executables Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Troubleshooting.md Commands to run the Proxmark3 client when installed via 'make install' or packaged for a distribution. Binaries are expected to be in the system's PATH. ```bash pm3 ``` ```bash proxmark3 ``` -------------------------------- ### Install Proxmark3 Dependencies with Picolibc Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md An alternative installation command for systems where `gcc-arm-none-eabi` conflicts with `libnewlib-dev`. This version uses `picolibc-arm-none-eabi` instead of `libnewlib-dev`. ```sh sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \ libreadline-dev gcc-arm-none-eabi picolibc-arm-none-eabi qt6-base-dev \ libbz2-dev liblz4-dev zlib1g-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev ``` -------------------------------- ### Proxmark3 Lua Libraries and Scripts Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md Lua libraries and scripts used by the Proxmark3 client are installed in /usr/local/share/proxmark3/lualibs and /usr/local/share/proxmark3/luascripts. ```bash /usr/local/share/proxmark3/lualibs ``` ```bash /usr/local/share/proxmark3/luascripts ``` -------------------------------- ### Set up NixOS Development Environment Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md Use this command within the cloned proxmark repo to enter a nix-shell with all necessary packages for building the client and firmware. ```shell nix-shell tools/shell.nix ``` -------------------------------- ### CMake Configuration for MinGW on ProxSpace Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/client/experimental_lib/CMakeLists.txt Configure the build for MinGW environments, specifically on ProxSpace 3.4. For older versions or different setups, ensure CMake is installed. ```bash cmake -G"MSYS Makefiles" .. # On Proxspace 3.3 or less, you need to install cmake: # pacman -S mingw-w64-x86_64-cmake # /mingw64/bin/cmake -G"MSYS Makefiles" .. ``` -------------------------------- ### Start Proxmark3 Client in Termux Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/termux_notes.md Use this command to start the Proxmark3 client when connected directly via USB in Termux. Ensure the device is correctly mapped to /dev/ttyACM0. ```bash tsudo proxmark3/client/proxmark3 /dev/ttyACM0 ``` -------------------------------- ### Makefile.platform for 256KB Proxmark3 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md This example demonstrates a typical Makefile.platform configuration for compiling a Proxmark3 firmware image for 256KB devices. It includes parameters to reduce firmware size by skipping certain functionalities. ```makefile PLATFORM=PM3GENERIC PLATFORM_SIZE=256 STANDALONE= SKIP_HITAG=1 SKIP_FELICA=1 ``` -------------------------------- ### Decode Jooki NDEF URL Parameter Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/jooki_notes.md Use this command to decode a base64 encoded NDEF URL parameter for a Jooki figurine. No specific setup is required beyond having the proxmark3 client installed. ```bash hf jooki decode -d g+t07s57aX1bB6tk ``` -------------------------------- ### Filter Git Commits by Message Content Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/filter_git_blame.md This example filters Git commits based on specific patterns within the commit message. It uses Awk's `match` function to check for messages starting with 'make style', 'style', or 'cppcheck'. ```awk clear; git log --format='%H%n%B%x00' | awk -v RS='\0' '{ if (match($0, /^\n?([0-9A-Fa-f]{40})\n((make style(\r?\n)?$)|(style(\r?\n)?$)|(cppcheck[.\r\n]*$))/, matches)) { print "\nvvvvvvvvvvvvvvvv\n" matches[0] "\n--------\n" matches[1] "\n--------\n" matches[2] "\n^^^^^^^^^^^^^^^^ " if (++count == 10) exit } }' ``` -------------------------------- ### Initialize CLI Context Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/cliparser.md Initializes the command context with a description and usage examples. ```c CLIParserInit(&ctx, "lf indala clone", "clone INDALA UID to T55x7 or Q5/T5555 tag", "lf indala clone --heden 888\n" "lf indala clone --fc 123 --cn 1337\n" "lf indala clone -r a0000000a0002021\n" "lf indala clone -l -r 80000001b23523a6c2e31eba3cbee4afb3c6ad1fcf649393928c14e5"); ``` -------------------------------- ### Build Client with Qt Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md Use this command to ensure Qt is present when building the client. This is useful for projects requiring a graphical interface. ```bash make client FORCEQT=1 ``` -------------------------------- ### Install Recovery Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the recovery components. It is one of the individual targets triggered by 'make install'. ```bash make recovery/install ``` -------------------------------- ### Example: Write Factory Configuration (Default Password) Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/magic_cards_notes.md Writes the factory default configuration using the default password. ```bash hf 14a raw -s -c -t 1000 CF00000000F000000000000002000978009102DABC19101011121314151604000800 ``` -------------------------------- ### Install Bootrom Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the bootrom components. It is one of the individual targets triggered by 'make install'. ```bash make bootrom/install ``` -------------------------------- ### Proxmark3 Command Script Example Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md A sample command script containing multiple Proxmark3 commands to be executed sequentially. ```text $> cat myscript.cmd rem running some HF-based info commands hf 14a info hf mfu info rem done ``` -------------------------------- ### Initialize Proxmark3 RDV4 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md Run this command to initialize your Proxmark3 RDV4. This is typically the first step in preparing the device. ```bash [usb] pm3 --> script run init_rdv4 ``` -------------------------------- ### Install Full Image Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs the full image components, aliased as 'make armsrc/install'. It is one of the individual targets triggered by 'make install'. ```bash make fullimage/install ``` -------------------------------- ### Run the Proxmark3 client Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md Launch the client using the auto-detection script or by specifying the device port manually. ```sh ./pm3 ``` ```sh proxmark3 /dev/ttyACM0 ``` ```sh client/proxmark3 /dev/ttyACM0 ``` -------------------------------- ### Install Proxmark3 package Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/termux_notes.md Installs the pre-compiled Proxmark3 package from the Termux repository. ```bash pkg install proxmark3 ``` -------------------------------- ### Build Proxmark3 Client with Makefile Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/docker/homebrew/README.md Use this command to build the Proxmark3 client using the Makefile, enabling Homebrew and skipping readline. ```shell make -j client USE_BREW=1 SKIPREADLINE=1 ``` -------------------------------- ### Build and Install OpenCL Headers with CMake Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/tools/hitag2crack/common/OpenCL-Headers/README.md Use CMake to configure the installation prefix and build the OpenCL headers package. The install rule makes the headers available for consumption by other CMake projects. ```bash cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/chosen/install/prefix cmake --build build --target install ``` ```bash cmake path/to/opencl/app -DOpenCLHeaders_ROOT=/chosen/install/prefix ``` -------------------------------- ### Automated Startup Batch Script Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-WSL2-Installation-Instructions.md A batch script to automate the initialization of USBIP and the Proxmark3 client on Windows/WSL2. ```batch @echo off REM -- Minimize the initial command prompt window if not "%Minimized%"=="" goto :Minimized set Minimized=True start /min cmd /C "%~dpnx0" goto :EOF :Minimized REM -- Check for permissions IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" ( >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" ) ELSE ( >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" ) REM -- If error flag set, we do not have admin. if '%errorlevel%' NEQ '0' ( echo Requesting administrative privileges... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params= %* echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"="%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B :gotAdmin pushd "%CD%" CD /D "%~dp0" REM -- Start Ubuntu in a new Terminal window, change working directory to /home/proxmark3 and run Proxmark3 Client. Adjust your path accordingly. start "" wt wsl.exe -d Ubuntu --cd ~/proxmark3 ./pm3 REM -- A trick to make this script sleep for 2 seconds, waiting for the Ubuntu session to fully initialize. ping 127.0.0.1 -n 3 > nul REM -- Replace the following hardware IDs with your actual Proxmark3 ID. You can find it by using "usbipd list" usbipd bind --hardware-id 9ac4:4b8f usbipd attach --auto-attach --hardware-id 9ac4:4b8f --wsl REM -- Activate below line by removing the "REM --" prefix if you encounter this error: "usbipd: error: WSL kernel is not USBIP capable" REM -- wsl -u root "modprobe vhci_hcd" wsl -u root "service udev restart" wsl -u root "udevadm trigger --action=change" pause & exit ``` -------------------------------- ### Build Proxmark3 client from source Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/termux_notes.md Compiles the Proxmark3 host client from the official repository and verifies the build. ```bash pkg install make clang readline libc++ git binutils libgd git clone https://github.com/RfidResearchGroup/proxmark3.git cd proxmark3 make clean && make host ``` ```bash make host/check ``` -------------------------------- ### Example: Write Block 0 (Factory Data, Default Password) Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/magic_cards_notes.md Demonstrates writing block 0 with factory data using the default backdoor password. ```bash hf 14a raw -s -c -t 1000 CF00000000CD00112233441C000011778185BA18000000 ``` -------------------------------- ### Basic CMake Build Steps Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/client/experimental_lib/CMakeLists.txt Standard commands to configure and build the project using CMake. Ensure you are in the build directory. ```bash mkdir build cd build cmake .. make ``` -------------------------------- ### Simple AID Entry Example Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/aidlist.md A basic example of an AID entry for a transport application. ```json { "AID": "A00000039656434103F1216000000000", "Vendor": "LV Monorail", "Country": "United States", "Name": "Las Vegas Monorail", "Description": "Used on Las Vegas Monorail during Google Wallet Mifare 2GO demo period", "Type": "transport" } ``` -------------------------------- ### Run individual build and test commands Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/docker/archlinux/README.md Clean and build the project, then execute the long-form test suite. ```bash make clean; make -j tools/pm3_tests.sh --long ``` -------------------------------- ### Install Common Components Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md This target installs common shared content, including pm3-* scripts, tools, documentation, SIM firmware, and udev rules. It is one of the individual targets triggered by 'make install'. ```bash make common/install ``` -------------------------------- ### Execute mfkey64 with sample trace Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/tools/mfc/card_reader/mfkey_examples.md Run key recovery using a specific trace output. ```text + 50422: : 26 + 64: 0: TAG 04 00 + 944: : 93 20 + 64: 0: TAG 9c 59 9b 32 6c + 1839: : 93 70 9c 59 9b 32 6c 6b 30 + 64: 0: TAG 08 b6 dd + 3783: : 60 32 64 69 + 113: 0: TAG 82 a4 16 6c + 1287: : a1 e4 58 ce 6e ea 41 e0 + 64: 0: TAG 5c ad f4 39 ``` ```bash ./mfkey64 9C599B32 82A4166C A1E458CE 6EEA41E0 5CADF439 ``` -------------------------------- ### Run Proxmark3 Client Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md Launch the Proxmark3 client. If the port is not detected automatically, specify the device port manually. ```bash pm3 ``` ```bash proxmark3 /dev/tty.usbmodemiceman1 ``` -------------------------------- ### iCLASS Sniffed Trace Example Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/iclass_legrec_legbrute_key_recovery.md Example values extracted from a sniffed iCLASS authentication trace. ```text CSN: 9655a400f8ff12e0 ePurse: feffffffffffffff <- block 2, also used as CCNR prefix NR: 1306cad9 <- reader nonce (4 bytes) MAC: b6c24466 <- MAC_reader (4 bytes) Combined --macs argument: 1306cad9b6c24466 Combined --epurse argument: feffffffffffffff ``` -------------------------------- ### Execute the Proxmark3 client Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md Use the pm3 wrapper script to launch the client with automatic device detection. ```sh pm3 ``` -------------------------------- ### Build and Flash Client Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Windows-WSL2-Installation-Instructions.md Commands to clean, compile, and launch the Proxmark3 client. ```bash cd ~/proxmark3 make clean make -j ./pm3-flash-all ./pm3 ``` -------------------------------- ### Build Client with Qt6 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Development/Maintainers.md Use this command to ensure Qt6 is present when building the client. This is useful for projects requiring the latest Qt version. ```bash make client FORCEQT6=1 ``` -------------------------------- ### Compile Proxmark3 with Bluetooth Support Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/bt_manual_v10.md Steps to prepare the build environment and compile the firmware with Bluetooth add-on support enabled. ```bash cp Makefile.platform.sample Makefile.platform ``` ```bash make clean; make -j ``` ```bash ./pm3-flash-fullimage ``` -------------------------------- ### Proxmark3 Cmd Scripts Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md Custom command scripts for the Proxmark3 client are installed in /usr/local/share/proxmark3/cmdscripts. ```bash /usr/local/share/proxmark3/cmdscripts ``` -------------------------------- ### Proxmark3 JTAG-related Files Installation Path Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/path_notes.md JTAG configurations and helper scripts for OpenOCD are installed in /usr/local/share/proxmark3/jtag_openocd. ```bash /usr/local/share/proxmark3/jtag_openocd ``` -------------------------------- ### Tag Initialization Output Logs Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/em4x70/lf_em4x70_trace_notes.md Example output logs showing the communication exchange and the resulting tag memory state after initialization. ```text [+] 2024-05-15T18:47:50Z remark: set UM2 blocks to `AAAA` [#] sent >>>: [ 17156 .. 31590 ] ( 14434 ) 37 bits: 0001010111101010010100101001010000000 [#] recv <<<: no data [#] sent >>>: [ 86240 .. 88618 ] ( 2378 ) 6 bits: 000001 [#] recv <<<: [ 95070 .. 107359 ] ( 12289 ) 32 bits: 01111000101110001110000000010010 [#] sent >>>: [ 114092 .. 116470 ] ( 2378 ) 6 bits: 000010 [#] recv <<<: [ 122934 .. 135223 ] ( 12289 ) 32 bits: 00100001110111110101011001111000 [#] sent >>>: [ 141957 .. 144333 ] ( 2376 ) 6 bits: 000111 [#] recv <<<: [ 150774 .. 175352 ] ( 24578 ) 64 bits: 1010101010101010101010101010101010101010101010101010101010101010 [=] --- Tag Information --------------------------- [=] Block | data | info [=] ------+----------+----------------------------- [=] 15 | AA AA | UM2 [=] 14 | AA AA | UM2 [=] 13 | AA AA | UM2 [=] 12 | AA AA | UM2 [=] ------+----------+----------------------------- [=] 11 | -- -- | PIN write only [=] 10 | -- -- | PIN write only [=] ------+----------+----------------------------- [=] 9 | -- -- | KEY write only [=] 8 | -- -- | KEY write only [=] 7 | -- -- | KEY write only [=] 6 | -- -- | KEY write only [=] 5 | -- -- | KEY write only [=] 4 | -- -- | KEY write only [=] ------+----------+----------------------------- [=] 3 | 78 B8 | ID [=] 2 | E0 12 | ID [=] ------+----------+----------------------------- [=] 1 | 21 DF | UM1 [=] 0 | 56 78 | UM1 [=] ------+----------+----------------------------- [=] [=] Tag ID: 78 B8 E0 12 [=] Lockbit 0: 0 [=] Lockbit 1: 0 [=] Tag is UNLOCKED. [=] [#] sent >>>: [ 17163 .. 31601 ] ( 14438 ) 37 bits: 0001010111011010010100101001010000000 [#] recv <<<: no data [#] sent >>>: [ 86259 .. 88635 ] ( 2376 ) 6 bits: 000001 [#] recv <<<: [ 95089 .. 107379 ] ( 12290 ) 32 bits: 01111000101110001110000000010010 [#] sent >>>: [ 114111 .. 116488 ] ( 2377 ) 6 bits: 000010 [#] recv <<<: [ 122953 .. 135241 ] ( 12288 ) 32 bits: 00100001110111110101011001111000 [#] sent >>>: [ 141976 .. 144349 ] ( 2373 ) 6 bits: 000111 [#] recv <<<: [ 150793 .. 175371 ] ( 24578 ) 64 bits: 1010101010101010101010101010101010101010101010101010101010101010 [=] --- Tag Information --------------------------- [=] Block | data | info [=] ------+----------+----------------------------- [=] 15 | AA AA | UM2 [=] 14 | AA AA | UM2 [=] 13 | AA AA | UM2 [=] 12 | AA AA | UM2 [=] ------+----------+----------------------------- [=] 11 | -- -- | PIN write only [=] 10 | -- -- | PIN write only [=] ------+----------+----------------------------- [=] 9 | -- -- | KEY write only [=] 8 | -- -- | KEY write only [=] 7 | -- -- | KEY write only [=] 6 | -- -- | KEY write only [=] 5 | -- -- | KEY write only [=] 4 | -- -- | KEY write only [=] ------+----------+----------------------------- [=] 3 | 78 B8 | ID [=] 2 | E0 12 | ID [=] ------+----------+----------------------------- [=] 1 | 21 DF | UM1 [=] 0 | 56 78 | UM1 [=] ------+----------+----------------------------- [=] [=] Tag ID: 78 B8 E0 12 [=] Lockbit 0: 0 [=] Lockbit 1: 0 [=] Tag is UNLOCKED. [=] [#] sent >>>: [ 17157 .. 31602 ] ( 14445 ) 37 bits: 0001010110111010010100101001010000000 [#] recv <<<: no data [#] sent >>>: [ 86252 .. 88627 ] ( 2375 ) 6 bits: 000001 [#] recv <<<: [ 95081 .. 107372 ] ( 12291 ) 32 bits: 01111000101110001110000000010010 [#] sent >>>: [ 114105 .. 116478 ] ( 2373 ) 6 bits: 000010 [#] recv <<<: [ 122934 .. 135222 ] ( 12288 ) 32 bits: 00100001110111110101011001111000 [#] sent >>>: [ 141956 .. 144332 ] ( 2376 ) 6 bits: 000111 [#] recv <<<: [ 150775 .. 175353 ] ( 24578 ) 64 bits: 1010101010101010101010101010101010101010101010101010101010101010 [=] --- Tag Information --------------------------- [=] Block | data | info [=] ------+----------+----------------------------- [=] 15 | AA AA | UM2 ``` -------------------------------- ### Install required build dependencies Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Troubleshooting.md Install the necessary packages to ensure the development environment can compile the project. ```bash sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \ libreadline-dev gcc-arm-none-eabi libnewlib-dev qt6-base-dev \ libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev ``` -------------------------------- ### Flash Firmware from Client Subdirectory Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/Troubleshooting.md Example of flashing the full image when the proxmark3 client is executed from the 'client/' subdirectory of the source code. The image path is relative to the repository root. ```bash client/proxmark3 --flash --image armsrc/obj/fullimage.elf ``` ```bash ./proxmark3 --flash --image ../armsrc/obj/fullimage.elf ``` -------------------------------- ### Compile and Flash Standalone Mode Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/standalone/hf_14asniff.md Build the firmware with the specific standalone mode enabled and flash it to the device. ```bash make clean make STANDALONE=HF_14ASNIFF -j ./pm3-flash-fullimage ``` -------------------------------- ### Install tsu for root access Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/termux_notes.md Installs the tsu package in Termux to enable root access for kernel-level operations. ```bash pkg install tsu ``` -------------------------------- ### Install stable releases via MacPorts Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md Use these commands to install the stable version of the Proxmark3 Iceman software. ```bash sudo port install proxmark3-iceman ``` ```bash sudo port install proxmark3-iceman +pm3generic ``` -------------------------------- ### Provisioning Jinbo TID Card with Proxmark3 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/fmcos.md Use these commands to provision a Jinbo TID card. Ensure `--uid` and `--key` are set to your card's actual values. The `-k` flag is crucial for maintaining the RF field during the provisioning sequence. ```bash hf fmcos tidprovision --uid 13371337 --key 0001020304050607 hf fmcos tidcreatedf --id 4A54 --size 0300 --sfi 02 --name 6A696E00000000626FA5049F080102 -k hf fmcos select --id 4A54 -k hf fmcos tidcreatebin --type keyfile -k hf fmcos tidcreatebin --id 4200 --size 0270 --sfi 01 -k hf fmcos select --id 4200 -k hf fmcos writebinary --p1 02 --p2 50 --data 530030FFFFFFFFFFFFFF3A2B0000000022012200002403081106000000007F00 ``` -------------------------------- ### Create Application File Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/cipurse.md Creates a new application file with detailed specifications including FID, AID, file limits, security levels, access rights, and key information. ```bash hf cipurse create -d 92002438613F010A05020000FFFFFF021009021009621084054144204631D407A0000005070100A00F2873737373737373737373737373737373015FD67B000102030405060708090A0B0C0D0E0F01C6A13B ``` -------------------------------- ### Install Rosetta 2 Source: https://github.com/rfidresearchgroup/proxmark3/blob/master/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md Installs the Rosetta 2 translation layer required for running x86_64 binaries on Apple Silicon. ```bash /usr/sbin/softwareupdate --install-rosetta ```