Merge branch 'RfidResearchGroup:master' into spi_flash_v2
[RRG-proxmark3.git] / README.md
blob64ae861375366006846016613d1858179302c23c
1 # Iceman Fork - Proxmark3
3 The Proxmark3 is the swiss-army tool of RFID, allowing for interactions with the vast majority of RFID tags on a global scale. Originally built by Jonathan Westhues, the device is now the goto tool for RFID Analysis for the enthusiast. Iceman repository is considered to be the pinnacle of features and functionality, enabling a huge range of extremely useful and convenient commands and LUA scripts to automate chip identification, penetration testing, and programming
6 | Latest Release | Coverity | Contributors |
7 |:--------------:|:--------:|:------------:|
8 | [![Latest release](https://img.shields.io/github/v/release/rfidresearchgroup/proxmark3)](https://github.com/RfidResearchGroup/proxmark3/releases/latest) | [![Coverity Status](https://scan.coverity.com/projects/19334/badge.svg)](https://scan.coverity.com/projects/proxmark3-rrg-iceman-repo)| ![GitHub contributors](https://img.shields.io/github/contributors/rfidresearchgroup/proxmark3) |
11 | Actions OSX CI |  Actions Ubuntu CI | Actions Windows CI |
12 |:--------------:|:------------------:|:------------------:|
13 | [![MacOS Build and Test](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/macos.yml/badge.svg?branch=master)](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/macos.yml) | [![Ubuntu Build and Test](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/ubuntu.yml/badge.svg?branch=master)](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/ubuntu.yml) | [![Windows Build and Test](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/windows.yml/badge.svg?branch=master)](https://github.com/RfidResearchGroup/proxmark3/actions/workflows/windows.yml) |
15 # Table of Contents
16 - [Iceman Fork - Proxmark3](#iceman-fork---proxmark3)
17 - [Table of Contents](#table-of-contents)
18 - [PROXMARK3 INSTALLATION AND OVERVIEW](#proxmark3-installation-and-overview)
19   - [Notes / helpful documents](#notes--helpful-documents)
20 - [How to build?](#how-to-build)
21   - [Proxmark3 RDV4](#proxmark3-rdv4)
22   - [Generic Proxmark3 platforms](#generic-proxmark3-platforms)
23 - [What has changed?](#what-has-changed)
24 - [Development](#development)
25   - [Supported operative systems](#supported-operative-systems)
26   - [Precompiled binaries](#precompiled-binaries)
27   - [Proxmark3 GUI](#proxmark3-gui)
28   - [Official channels](#official-channels)
29   - [Maintainers](#maintainers)
30   - [Citation](#citation)
31   - [Copyright and licensing terms](#copyright-and-licensing-terms)
33 # PROXMARK3 INSTALLATION AND OVERVIEW
35 | Installation         | Use of the Proxmark3 |
36 | :------------------: | :------------------: |
37 | [Linux - Setup and Build](/doc/md/Installation_Instructions/Linux-Installation-Instructions.md) | [Compilation Instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md)|
38 | [Linux - Important notes on ModemManager](/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md) | [Validating Proxmark3 Client Functionality](/doc/md/Use_of_Proxmark/1_Validation.md)|
39 | [macOS - Homebrew & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/macOS-Homebrew-Installation-Instructions.md) | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md)|
40 | [macOS - MacPorts](/doc/md/Installation_Instructions/macOS-MacPorts-Installation-Instructions.md) | [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)|
41 | [macOS - Setup and Build](/doc/md/Installation_Instructions/macOS-Compile-From-Source-Instructions.md) ||
42 | [Windows - Setup and Build](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md) ||
43 | [Termux / Android - Setup and Build](/doc/termux_notes.md) ||
44 | [iOS - Setup and Build](/doc/md/Installation_Instructions/iOS-Installation-Instructions.md)
45 | [Blue Shark Manual](/doc/bt_manual_v10.md) | [Command Cheat Sheet](/doc/cheatsheet.md)|
46 | [Advanced Compilation Parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md) | [More Cheat Sheets](https://github.com/RfidResearchGroup/proxmark3/wiki/More-cheat-sheets)|
47 | [Troubleshooting](/doc/md/Installation_Instructions/Troubleshooting.md) | [Complete Client Command Set](/doc/commands.md) |
48 | [JTAG](/doc/jtag_notes.md) | [T5577 Introduction Guide](/doc/T5577_Guide.md)|
52 ## Notes / helpful documents
54 | Notes |||
55 | ------------------- |:-------------------:| -------------------:|
56 |[Notes on UART](/doc/uart_notes.md)|[Notes on Termux / Android](/doc/termux_notes.md)|[Notes on paths](/doc/path_notes.md)|
57 |[Notes on frame format](/doc/new_frame_format.md)|[Notes on tracelog / wireshark](/doc/trace_notes.md)|[Notes on EMV](/doc/emv_notes.md)|
58 |[Notes on external flash](/doc/ext_flash_notes.md)|[Notes on loclass](/doc/loclass_notes.md)|[Notes on Coverity Scan Config & Run](/doc/md/Development/Coverity-Scan-Config-and-Run.md)|
59 |[Notes on file formats used with Proxmark3](/doc/extensions_notes.md)|[Notes on MFU binary format](/doc/mfu_binary_format_notes.md)|[Notes on FPGA & ARM](/doc/fpga_arm_notes.md)|
60 |[Developing standalone mode](/armsrc/Standalone/readme.md)|[Wiki about standalone mode](https://github.com/RfidResearchGroup/proxmark3/wiki/Standalone-mode)|[Notes on Magic UID cards](/doc/magic_cards_notes.md)|
61 |[Notes on Color usage](/doc/colors_notes.md)|[Makefile vs CMake](/doc/md/Development/Makefile-vs-CMake.md)|[Notes on Cloner guns](/doc/cloner_notes.md)|
62 |[Notes on cliparser usage](/doc/cliparser.md)|[Notes on clocks](/doc/clocks.md)|[Notes on MIFARE DESFire](/doc/desfire.md)|
63 |[Notes on CIPURSE](/doc/cipurse.md)|[Notes on NDEF type4a](/doc/ndef_type4a.md)|[Notes on downgrade attacks](/doc/hid_downgrade.md)|
65 # How to build?
67 ## Proxmark3 RDV4
69 See the instruction links in the tables above to build, flash and run for your Proxmark3 RDV4 device.
71 ## Generic Proxmark3 platforms
73 In order to build this repo for generic Proxmark3 platforms we urge you to read [Advanced compilation parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md)
75 We define generic Proxmark3 platforms as following devices.
77 **Supported**
78   - RDV1, RDV2, RDV3 easy
79   - Ryscorp green PCB version
80   - Radiowar black PCB version
81   - numerous Chinese adapted versions of the RDV3 easy (kkmoon, PiSwords etc)
82   - Proxmark3 SE  (Special Edition)  (BLE enabled)
83   - Proxmark3 X
84     - **Note**: Community tested
85     - **Note**: unknown device hw
87 **Not supported**
88  - ⚠  Proxmark Evolution (EVO) 
89    - **Note**: unknown pin assignments.
90  - ⚠  Ryscorp Proxmark3 Pro 
91    - **Note**: device has different fpga and unknown pin assignments.
92    - **Note**: Company have disappeared, leaving their customers in the dark.
94 **Experimental support**
95  - ⚠  iCopy-X
96    - **Note**: currently incompatible with iCopy-X GUI as Proxmark client commands using different syntax
97    - **Note**: see also [icopyx-community repos](https://github.com/iCopy-X-Community/) for upstream sources, reversed hw etc.
98    - **Note**: Uses DRM to lock down tags, ignores the open source licences. Use on your own risk. 
100 **Unknown support status**
101  - ⚠  VX
102    - **Note**: unknown device hw
103 -  ⚠ Proxmark3 Ultimate
104    - **Note**: unknown device hw
106 When it comes to these new unknown models we are depending on the community to report in if this repo works and what they did to make it work.
109 **256KB flash memory size of generic Proxmark3 platforms**
111 > ⚠ **Note**: 
112 > You need to keep a eye on how large your ARM chip built-in flash memory is. 
113 > With 512KB you are fine but if its 256KB you need to compile this repo with even less functionality.
114 > When running the `./pm3-flash-all` you can see which size your device have if you have the bootloader from this repo installed. 
115 > Otherwise you will find the size reported in the start message when running the Proxmark3 client `./pm3`.
117 > [OBS! Read the 256KB flash memory advisory](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md#256KB-versions)
120 # What has changed?
122 Proxmark3 RDV4 hardware modifications:
123   * added flash memory 256KB
124   * added smart card module
125   * added FPC connector for peripherals such as Bluetooth+battery addon
126   * improved antennas
127     * swappable
128     * LF Q factor switch
129     * LF 125/134 frequency switch
130   * tiny PCB form factor
131   * ABS case
133 This repo vs official Proxmark3 repo:
135 See the [Changelog file](CHANGELOG.md) which we try to keep updated.
137 In short this repo gives you a completely different user experience when it comes to Proxmark3.
139   * Supports command tab complete
140   * Richer CLI with use of colors / emojis
141   * Help text system implemented everywhere
142   * Hints system
143   * User preference settings
144   * Extensive testing with continuous integration build systems on Linux, OSX and Windows, and regular usage of static analysis tools like 
145     * [Coverity Scan](https://scan.coverity.com/projects/proxmark3-rrg-iceman-repo/)
146     * Cppcheck (v2.6)
147     * GCC and Clang aggressive enforcement of diagnostic flags
148   * Auto detection of serial ports and seamless integration with Bluetooth addon
149   * Reconnect to device from inside client
150   * Supports tearoff attacks
151   * Supports NFC NDEF type1, type2, type4a, type4b, mifare, barcode
152   * Supports pm3 client scripts,  lua scripts,  python scripts
153   * Most comprehensive collection of scripts available
154   * Wiegand encoding, decoding.
155   * Supports EMV
156   * Supports CIPURSE
157   * Most standalone modes available with easy compilation
158   * Extensive test script for client and external tools
159   * Most comprehensive compiled known keys dictionaries
160   * Slimed down usb communications with NG-frames
161   * The most compiled public known key recovery software
162   * The fastest implementations of said software
163   * Support multiple fileformats for dump files (BIN/EML/JSON) 
164   * Interoperability of said fileformats with libnfc, MFC tool app etc
165   * Supports more RFID based protocols than ever
166   * Easy install for package maintainers, distro maintainers
167   * Supports cmake, make
168   * Builds without errors or warnings on more OS/platforms than ever
169   * Available as package on known distros like Gentoo, Kali, Termux, Macports, Homebrew
170   * Much more documentation 
173 # Development
175 > ⚠ **Note**: This is a bleeding edge repository. The maintainers actively is working out of this repository and will be periodically re-structuring the code to make it easier to comprehend, navigate, build, test, and contribute to, so **DO expect significant changes to code layout on a regular basis**.
177 > 👉 **Remember!** If you intend to contribute to the code, please read the [coding style notes](CONTRIBUTING.md) first.
178 We usually merge your contributions fast since we do like the idea of getting a functionality in the Proxmark3 and weed out the bugs afterwards.
180 The [public roadmap](https://github.com/RfidResearchGroup/proxmark3/wiki/Public-Roadmap) is an excellent start to read if you are interesting in contributing.
183 ## Supported operative systems 
185 This repo compiles nicely on 
186    - WSL1 on Windows 10
187    - Proxspace environment [release v3.xx](https://github.com/Gator96100/ProxSpace/releases)
188    - Windows/MinGW environment
189    - Ubuntu, ParrotOS, Gentoo, Pentoo, Kali, NetHunter, Arch Linux, Fedora, Debian, Raspbian
190    - Android / Termux
191    - macOS / Homebrew (or MacPorts, experimental) / Apple Silicon M1
192    - iOS (Jailbroken, rootful)
193    - Docker container
194       - [ Iceman repo based ubuntu 18.04 container ](https://hub.docker.com/r/secopsconsult/proxmark3)
195       - [ Iceman fork based container v1.7 ](https://hub.docker.com/r/iceman1001/proxmark3/)
198 ## Precompiled binaries
200 See [Proxmark3 precompiled builds](https://www.proxmarkbuilds.org/) 
203 ## Proxmark3 GUI
205 The official PM3-GUI from Gaucho will not work. Not to mention is quite old and not maintained any longer.
207 - [Proxmark3 Universal GUI](https://github.com/burma69/PM3UniversalGUI) will work more or less.
208 - [Proxmark3 GUI cross-compiled](https://github.com/wh201906/Proxmark3GUI/) which is recently updated and claims to support latest source of this repo.
209 - [Proxmark3_GUI](https://github.com/Phreak87/Proxmark3_GUI) simple gui in vb.net
212 ## Official channels
213 Where do you find the community?
214    - [RFID Hacking community discord server](https://t.ly/d4_C)
215    - [Proxmark3 IRC channel](https://web.libera.chat/?channels=#proxmark3)
216    - [Proxmark3 sub reddit](https://www.reddit.com/r/proxmark3/)
217    - [Proxmark3 forum](http://www.proxmark.org/forum/index.php)
220 ## Maintainers
222 To all distro, package maintainers, we tried to make your life easier.
224 `make install` is now available and if you want to know more.
226 This document will be helpful for you
227 - [Notes for maintainers](/doc/md/Development/Maintainers.md)
230 ## Citation
231 Use this bibtex to cite this repository globally:
233 @misc{proxmark3,
234   author = {C. {Herrmann} and P. {Teuwen} and O. {Moiseenko} and M. {Walker} and others},
235   title = {{Proxmark3 -- Iceman repo}},
236   howpublished = {\url{https://github.com/RfidResearchGroup/proxmark3}},
237   keywords = {rfid nfc iceman proxmark3 125khz 134khz 13.56mhz},
240 If you need to refer to a specific state of the repository, use a commit number or a date of access, e.g.:
242   note = {Accessed: commit 12327f71a27da23831901847886aaf20e8ad3ca0}
243   note = {Accessed: 2021-01-01}
246 ## Copyright and licensing terms
248 Each contribution is under the copyright of its author. See [AUTHORS](AUTHORS.md).
250 The Proxmark3 source code is covered by the following licensing terms, usually referred as **GPLv3 or later**.
252     This program is free software: you can redistribute it and/or modify
253     it under the terms of the GNU General Public License as published by
254     the Free Software Foundation, either version 3 of the License, or
255     (at your option) any later version.
257     This program is distributed in the hope that it will be useful,
258     but WITHOUT ANY WARRANTY; without even the implied warranty of
259     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
260     GNU General Public License for more details.
262 A copy of the GPLv3 is available in [LICENSE](LICENSE.txt).  
264 Some dependencies may be under other free licensing terms compatible with the Proxmark3 licensing terms, see their respective description.