proxmark3/README.md

203 lines
11 KiB
Markdown
Raw Normal View History

2021-01-14 19:48:48 +08:00
# RRG / Iceman - Proxmark3
2020-05-20 16:24:20 +08:00
2021-01-14 19:08:44 +08:00
| Releases | Coverity | Contributors |
| ------------------- | -------------------:| -------------------:|
| [![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) |
2019-12-03 03:28:29 +08:00
2021-01-14 19:08:44 +08:00
| Actions OSX CI | Actions Ubuntu CI | Windows CI |
| ------------------- | -------------------:| -------------------:|
| ![MacOS Build and Test](https://github.com/RfidResearchGroup/proxmark3/workflows/MacOS%20Build%20and%20Test/badge.svg?branch=master) | ![Ubuntu Build and Test](https://github.com/RfidResearchGroup/proxmark3/workflows/Ubuntu%20Build%20and%20Test/badge.svg?branch=master) | [![Build status](https://ci.appveyor.com/api/projects/status/b4gwrhq3nc876cuu/branch/master?svg=true)](https://ci.appveyor.com/project/RfidResearchGroup/proxmark3/branch/master) |
2021-01-05 22:20:57 +08:00
2017-06-09 20:58:11 +08:00
2021-01-14 19:48:48 +08:00
# PROXMARK3 INSTALLATION AND OVERVIEW
| FAQ's & Updates | Installation | Use of the Proxmark |
| ------------------- |:-------------------:| -------------------:|
2020-03-05 11:54:11 +08:00
|[What has changed?](#what-has-changed) | **[Setup and build for Linux](/doc/md/Installation_Instructions/Linux-Installation-Instructions.md)** | [Compilation Instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md)|
|[Development](#development) | **[Important notes on ModemManager for Linux users](/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md)** | [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) |
2021-04-08 14:55:26 +08:00
|[Maintainers](#maintainers--package-distro-)| **[Homebrew (Mac OS X) & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md)** | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md)|
2020-03-05 11:54:11 +08:00
|[Proxmark3 GUI](#proxmark3-gui)|**[Setup and build for Windows](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md)**|[Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)|
2021-04-08 15:02:37 +08:00
|[Pre-compiled binaries](#precompiled-binaries)|[Blue shark manual](/doc/bt_manual_v10.md) ||
2021-04-08 14:55:26 +08:00
|[Donations](#donations)||[Command Cheat sheet](/doc/cheatsheet.md)|
2020-05-19 15:40:25 +08:00
||[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)|
||**[Troubleshooting](/doc/md/Installation_Instructions/Troubleshooting.md)**|[Complete client command set](/doc/commands.md)|
2021-03-10 00:03:15 +08:00
||**[JTAG](/doc/jtag_notes.md)**|[T5577 Introduction Guide](/doc/T5577_Guide.md)|
2019-12-03 03:28:29 +08:00
2020-05-19 15:42:54 +08:00
## Notes / helpful documents
2020-05-20 16:24:20 +08:00
2020-05-19 15:42:54 +08:00
| Notes |||
2020-05-19 15:40:25 +08:00
| ------------------- |:-------------------:| -------------------:|
|[Notes on UART](/doc/uart_notes.md)|[Notes on Termux / Android](/doc/termux_notes.md)|[Notes on paths](/doc/path_notes.md)|
2020-05-19 16:14:39 +08:00
|[Notes on frame format](/doc/new_frame_format.md)|[Notes on tracelog / wireshark](/doc/trace_notes.md)|[Notes on EMV](/doc/emv_notes.md)|
2020-10-07 02:16:23 +08:00
|[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)|
2020-06-03 00:51:57 +08:00
|[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)|
2020-09-10 06:37:48 +08:00
|[Developing standalone mode](/armsrc/Standalone/readme.md)|[Wiki about standalone mode](https://github.com/RfidResearchGroup/proxmark3/wiki/Standalone-mode)|[Notes on Magic cards](/doc/magic_cards_notes.md)|
2020-09-15 10:30:30 +08:00
|[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)|
2020-11-11 04:54:33 +08:00
|[Notes on cliparser usage](/doc/cliparser.md)|[Notes on clocks](/doc/clocks.md)||
2020-05-20 16:24:20 +08:00
2021-04-08 15:02:37 +08:00
# How to build?
## Proxmark3 RDV4
2021-01-14 19:48:48 +08:00
See the instruction links in the tables above to build, flash and run for your Proxmark3 RDV4 device.
2019-09-03 19:11:49 +08:00
2021-04-08 15:02:37 +08:00
## Generic Proxmark3 platforms
2021-01-14 19:48:48 +08:00
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)
2019-08-26 15:12:26 +08:00
2021-04-14 03:52:48 +08:00
We define generic Proxmark3 platforms as following devices.
**Supported**
2021-04-07 05:43:01 +08:00
- RDV1, RDV2, RDV3 easy
2021-04-14 03:52:48 +08:00
- Ryscorp green PCB version
2021-01-14 18:45:37 +08:00
- Radiowar black PCB version
- numerous Chinese adapted versions of the RDV3 easy (kkmoon, PiSwords etc)
2021-01-14 18:45:37 +08:00
2021-04-14 03:52:48 +08:00
**Not supported**
- ⚠ Proxmark Evolution (EVO)
- **Note**: unknown pin assignments.
- ⚠ Ryscorp Proxmark3 Pro
- **Note**: device has different fpga and unknown pin assignments.
**Unknown support status**
- ⚠ VX
2021-04-24 21:35:32 +08:00
- **Note**: unknown device hw
- ⚠ i-copy
- **Note**: unknown device hw
2021-04-14 03:52:48 +08:00
**256kb flash memory size of generic Proxmark3 platforms**
> ⚠ **Note**:
> You need to keep a eye on how large your ARM chip built-in flash memory is.
> With 512kb you are fine but if its 256kb you need to compile this repo with even less functionality.
> When running the `./pm3-flash-all` you can see which size your device have if you have the bootloader from this repo installed.
> Otherwise you will find the size reported in the start message when running the Proxmark3 client `./pm3`.
>
> [OBS! Read the 256kb flash memory advisory](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md#256kb-versions)
2019-12-03 03:28:29 +08:00
2019-05-05 06:24:29 +08:00
## What has changed?
2019-05-05 06:18:18 +08:00
2021-04-08 14:55:26 +08:00
Proxmark3 RDV4 hardware modifications:
* added flash memory 256kb
2019-05-05 06:18:18 +08:00
* added smart card module
2021-04-14 03:22:33 +08:00
* added FPC connector for peripherals such as Bluetooth+battery addon
2021-04-08 15:02:37 +08:00
* improved antennas
* swappable
* LF Q factor switch
2021-04-14 03:22:33 +08:00
* LF 125/134 frequency switch
2021-04-08 14:55:26 +08:00
* tiny PCB form factor
* ABS case
This repo vs official Proxmark3 repo:
2021-04-14 03:22:33 +08:00
see the [Changelog file](CHANGELOG.md) which we try to keep updated. In short this repo gives you a completely different user experience when it comes to Proxmark3.
2021-04-08 14:55:26 +08:00
* richer CLI with use of colors / emojis
* help text system implemented everywhere
* hints system
* user preference settings
2021-04-14 03:22:33 +08:00
* extensive testing with continuous integration build systems on Linux, OSX and Windows, and regular usage of static analysis tools like
* [Coverity Scan](https://scan.coverity.com/projects/proxmark3-rrg-iceman-repo/)
* Cppcheck
* GCC and Clang aggressive enforcement of diagnostic flags
* auto detection of serial ports and seamless integration with Bluetooth addon
2021-04-14 15:08:00 +08:00
* reconnect to device from inside client
2021-04-14 15:08:57 +08:00
* Supports tearoff attacks
2021-04-14 15:08:00 +08:00
* the most comprehensive compiled known keys dictionaries
* Slimed down usb communications with NG-frames
* the most compiled public known key recovery software
* the fastest implementations of said software
* support multiple fileformats for dump files (BIN/EML/JSON)
* interoperability of said fileformats with libnfc, MFC tool app etc
* Supports more RFID based protocols than ever
* Easy install for package maintainers, distro maintainers
* More documentation
2021-04-14 15:08:57 +08:00
2021-04-14 15:08:00 +08:00
All of this and more is what makes this repo different from any other Proxmark3 firmware / client software. It is truely bleeding edge in that sense of available functionality and experience with it. With all extensive testing its also quite more stable than any other Proxmark3 repo.
2019-05-05 06:18:18 +08:00
2017-04-26 21:40:13 +08:00
## Development
2019-09-03 19:11:49 +08:00
2019-10-11 15:36:09 +08:00
> ⚠ **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**.
2019-10-11 15:32:51 +08:00
2021-05-30 06:13:36 +08:00
> 👉 **Remember!** If you intend to contribute to the code, please read the [coding style notes](CONTRIBUTING.md) first.
2021-04-08 14:55:26 +08:00
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.
The [public roadmap](https://github.com/RfidResearchGroup/proxmark3/wiki/Public-Roadmap) is an excellent start to read if you are interesting in contributing.
## Supported operative systems
2019-10-11 15:32:51 +08:00
This repo compiles nicely on
2021-04-08 14:55:26 +08:00
- WSL1 on Windows 10
2021-06-25 17:27:41 +08:00
- Proxspace enviroment [release v3.9](https://github.com/Gator96100/ProxSpace/releases)
2021-04-14 03:26:00 +08:00
- Windows/MinGW environment
- Ubuntu, ParrotOS, Gentoo, Pentoo, Kali, NetHunter, Arch Linux, Fedora, Debian, Raspbian
2020-05-19 15:49:53 +08:00
- Android / Termux
2021-04-02 00:00:02 +08:00
- Mac OS X / Homebrew / Apple Silicon M1
2017-03-07 21:39:30 +08:00
- Docker container
2020-05-20 16:24:20 +08:00
- [ RRG / Iceman repo based ubuntu 18.04 container ](https://hub.docker.com/r/secopsconsult/proxmark3)
- [ Iceman fork based container v1.7 ](https://hub.docker.com/r/iceman1001/proxmark3/)
2019-05-05 06:41:20 +08:00
2020-06-04 15:22:17 +08:00
## Precompiled binaries
2021-04-14 03:26:00 +08:00
We don't maintain any precompiled binaries in this repo. There is community effort over at the Proxmark3 forum where package maintainer [@gator96100](https://github.com/gator96100) has set up a AWS bucket with precompiled Proxspace (MinGW) binaries which are recompiled every night and with that also up-to-date. We link to these files here as to make it easier for users. If you are having troubles with these files, we suggest to read the [homepage of his proxmark builds](https://www.proxmarkbuilds.org/) or read the [sticky thread at forum](http://www.proxmark.org/forum/viewtopic.php?pid=24763#p24763)
2020-06-04 15:24:17 +08:00
2021-01-14 19:50:52 +08:00
### Proxmark3 RDV4 devices
- [Precompiled builds for RDV40 dedicated x64](https://www.proxmarkbuilds.org/#rdv40-64/)
- [Precompiled builds for RDV40 dedicated with Bluetooth addon x64](https://www.proxmarkbuilds.org/#rdv40_bt-64/)
2020-06-04 15:22:17 +08:00
2021-01-14 19:50:52 +08:00
### Generic Proxmark3 devices
- [Precompiled builds for RRG / Iceman repository x64](https://www.proxmarkbuilds.org/#rrg_other-64/)
2020-06-04 15:22:17 +08:00
2021-04-14 03:26:00 +08:00
## Official channels
2021-04-08 14:55:26 +08:00
Where do you find the community?
2021-01-14 19:30:30 +08:00
- [RFID Hacking community discord server](https://discord.gg/QfPvGFRQxH)
2021-06-25 17:27:41 +08:00
- [Proxmark3 IRC channel](https://web.libera.chat/?channels=#proxmark3)
2020-05-20 16:24:20 +08:00
- [Proxmark3 sub reddit](https://www.reddit.com/r/proxmark3/)
2021-01-14 18:45:37 +08:00
- [Proxmark3 forum](http://www.proxmark.org/forum/index.php)
2020-05-20 16:24:20 +08:00
2021-01-14 19:30:30 +08:00
2019-08-31 16:58:42 +08:00
## Maintainers ( package, distro )
2019-09-03 19:11:49 +08:00
2021-01-14 18:45:37 +08:00
To all distro, package maintainers, we tried to make your life easier.
`make install` is now available and if you want to know more.
2021-01-14 19:30:30 +08:00
- [Notes for maintainers](/doc/md/Development/Maintainers.md)
2019-08-31 16:58:42 +08:00
2019-06-17 15:49:10 +08:00
## Proxmark3 GUI
2019-09-03 19:11:49 +08:00
2021-01-14 19:48:48 +08:00
The official PM3-GUI from Gaucho will not work. Not to mention is quite old and not maintained any longer.
2021-01-14 18:45:37 +08:00
2021-04-02 00:00:02 +08:00
- [Proxmark3 Universal GUI](https://github.com/burma69/PM3UniversalGUI) will work more or less.
2021-04-14 03:26:00 +08:00
- [Proxmark3 GUI cross-compiled](https://github.com/wh201906/Proxmark3GUI/) which is recently updated and claims to support latest source of this repo.
- [Proxmark3_GUI](https://github.com/Phreak87/Proxmark3_GUI) simple gui in vb.net
2021-03-29 04:34:03 +08:00
# Donations
2019-09-03 19:11:49 +08:00
2021-04-08 15:02:37 +08:00
Nothing says thank you as much as a donation.
If you feel the love, do feel free to become a [Iceman patron](https://www.patreon.com/iceman1001).
2019-06-17 15:49:10 +08:00
2021-04-08 15:02:37 +08:00
If you are using @gator96100 's Proxspace with pre-compiled binaries do consider buy him a coffee for his efforts.
2021-04-21 14:46:12 +08:00
## Citation
2021-05-08 03:01:23 +08:00
Use this bibtex to cite this repository globally:
2021-04-21 14:46:12 +08:00
```
2021-05-08 03:01:23 +08:00
@misc{proxmark3rrg,
author = {C. {Herrmann} and P. {Teuwen} and O. {Moiseenko} and M. {Walker} and others},
title = {{Proxmark3 -- RRG / Iceman repo}},
howpublished = {\url{https://github.com/RfidResearchGroup/proxmark3}},
keywords = {rfid nfc iceman proxmark3 125khz 134khz 13.56mhz},
2021-04-21 14:46:12 +08:00
}
```
2021-05-08 03:01:23 +08:00
If you need to refer to a specific state of the repository, use a commit number or a date of access, e.g.:
```
note = {Accessed: commit 12327f71a27da23831901847886aaf20e8ad3ca0}
note = {Accessed: 2021-01-01}
```