From 5b86284b49039d82cad7ee389325550596003346 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Sun, 5 May 2019 19:53:58 +0200 Subject: [PATCH] update docs --- Makefile | 14 +- README.md | 18 +-- .../Coverity-Scan-Config-&-Run.md | 0 .../Arch-Linux-Installation-Instructions.md | 60 -------- .../Kali-Installation-Instructions.md | 98 ------------- .../Linux-Installation-Instructions.md | 89 ++++++++++++ ...OS-X-Homebrew-Installation-Instructions.md | 47 ++++--- .../ModemManager-Must-Be-Discarded.md | 132 ++++++++++++++++++ .../Parrot-OS-Proxmark3-RDV4-installation.md | 98 ------------- .../Ubuntu-Installation-Instructions.md | 102 -------------- .../Windows-Installation-Instructions.md | 41 ++---- .../0_Compilation-Instructions.md | 36 +++++ doc/md/Use_of_Proxmark/1_Validation.md | 127 ++++++++++------- .../2_Configuration-and-Verification.md | 70 ++++++---- .../3_Commands-and-Features.md | 38 +++-- 15 files changed, 464 insertions(+), 506 deletions(-) rename doc/md/{Installation_Instructions => Development}/Coverity-Scan-Config-&-Run.md (100%) delete mode 100644 doc/md/Installation_Instructions/Arch-Linux-Installation-Instructions.md delete mode 100644 doc/md/Installation_Instructions/Kali-Installation-Instructions.md create mode 100644 doc/md/Installation_Instructions/Linux-Installation-Instructions.md create mode 100644 doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md delete mode 100644 doc/md/Installation_Instructions/Parrot-OS-Proxmark3-RDV4-installation.md delete mode 100644 doc/md/Installation_Instructions/Ubuntu-Installation-Instructions.md create mode 100644 doc/md/Use_of_Proxmark/0_Compilation-Instructions.md diff --git a/Makefile b/Makefile index d968781f4..5efaae390 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ recovery/%: FORCE bootrom/% armsrc/% $(MAKE) -C recovery $(patsubst recovery/%,%,$@) FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites) -.PHONY: all clean help _test bootrom flash-bootrom os flash-os flash-all recovery client mfkey nounce2key style checks FORCE +.PHONY: all clean help _test bootrom flash-bootrom os flash-os flash-all recovery client mfkey nounce2key style checks FORCE udev accessrights help: @echo "Multi-OS Makefile" @@ -114,14 +114,16 @@ newtarbin: tarbin: newtarbin client/tarbin armsrc/tarbin bootrom/tarbin $(GZIP) proxmark3-$(platform)-bin.tar -# configure system -# - to ignore PM3 device as a modem (blacklist) -# - add user to the dialout group -# you may need to logout, relogin to get this access right correct. -# Finally, you might need to run the proxmark3 client under SUDO on some systems +# configure system to ignore PM3 device as a modem (ModemManager blacklist, effective *only* if ModemManager is not using _strict_ policy) +# Read doc/md/ModemManager-Must-Be-Discarded.md for more info udev: sudo cp -rf driver/77-pm3-usb-device-blacklist.rules /etc/udev/rules.d/77-pm3-usb-device-blacklist.rules sudo udevadm control --reload-rules + +# configure system to add user to the dialout group +# you need to logout, relogin to get this access right correct. +# Finally, you might need to run the proxmark3 client under SUDO on some systems +accessrights: ifneq ($(wildcard /etc/arch-release),) #If user is running ArchLinux sudo usermod -aG uucp $(USER) #Use specific command and group else diff --git a/README.md b/README.md index fd698c3d0..adf4be8b6 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,11 @@ alt="Yuotube" width="100%" height="auto" border="10" /> | FAQ's & Updates | Installation | Use of the Proxmark | | ------------- |:-------------:| -----:| -|[What has changed?](#what-has-changed) | [Setup and build for ArchLinux](/doc/md/Installation_Instructions/Arch-Linux-Installation-Instructions.md) | [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md)| -|[Development](#development) | [Setup and build for UBUNTU](/doc/md/Installation_Instructions/Ubuntu-Installation-Instructions.md) | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md) | -| [Why don't you add this or that functionality?](#why-dont-you-add-this-or-that-functionality) | [Homebrew (Mac OS X) & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md) | [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)| -|[Why didn't you base it on official PM3 Master?](#why-didnt-you-base-it-on-official-pm3-master) |[ParrotOS Installation ](/doc/md/Installation_Instructions/Parrot-OS-Proxmark3-RDV4-installation.md)|[PM3 GUI](#pm3-gui) -|[Notices](#notices)|[Setup and build for Windows](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md)|| -|[Issues](#issues)|[Coverity Scan Config & Run](/doc/md/Installation_Instructions/Coverity-Scan-Config-%26-Run.md)|| -||[Kali Linux Installation Instructions](/doc/md/Installation_Instructions/Kali-Installation-Instructions.md)| +|[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) | +| [Why don't you add this or that functionality?](#why-dont-you-add-this-or-that-functionality) | [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)| +|[Why didn't you base it on official PM3 Master?](#why-didnt-you-base-it-on-official-pm3-master) |[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) +|[Issues](#issues)||[PM3 GUI](#pm3-gui)| --- ## What has changed? @@ -46,6 +44,8 @@ This fork now compiles just fine on If you intend to contribute to the code, please read the [coding style notes](HACKING.md) first. +Internal notes on [Coverity Scan Config & Run](/doc/md/Development/Coverity-Scan-Config-%26-Run.md). + --- ## Why didn't you base it on official PM3 Master? The separation from official pm3 repo gives us a lot of freedom to create a firmware/client that suits the RDV40 features. We don't want to mess up the official pm3 repo with RDV40 specific code. @@ -57,10 +57,6 @@ Give us a hint, and we'll see if we can't merge in the stuff you have. The official PM3-GUI from Gaucho will not work. The new universal GUI will work. [Proxmark3 Universal GUI](https://github.com/burma69/PM3UniversalGUI) -## Notices -Kali and ArchLinux users usually must kill their modem manager in order for the proxmark3 to enumerate properly. -`sudo apt remove modemmanager` - ## Issues Please see the [Proxmark Forum](http://www.proxmark.org/forum/index.php) and see if your issue is listed in the first instance Google is your friend :) Questions will be answered via the forum by Iceman and the team. diff --git a/doc/md/Installation_Instructions/Coverity-Scan-Config-&-Run.md b/doc/md/Development/Coverity-Scan-Config-&-Run.md similarity index 100% rename from doc/md/Installation_Instructions/Coverity-Scan-Config-&-Run.md rename to doc/md/Development/Coverity-Scan-Config-&-Run.md diff --git a/doc/md/Installation_Instructions/Arch-Linux-Installation-Instructions.md b/doc/md/Installation_Instructions/Arch-Linux-Installation-Instructions.md deleted file mode 100644 index 28245dbfa..000000000 --- a/doc/md/Installation_Instructions/Arch-Linux-Installation-Instructions.md +++ /dev/null @@ -1,60 +0,0 @@ -# Setup and build for ArchLinux - -## Notes - -Kali and ArchLinux users usually must kill their modem manager in order for the proxmark3 to enumerate properly. -`sudo apt remove modemmanager` - -## Manual Installation -Run -```sh -sudo pacman -Sy base-devel p7zip libusb readline ncurses arm-none-eabi-newlib --needed -``` -```sh -yaourt -S termcap -``` - -```sh -sudo apt remove modemmanager -``` -or -```sh -systemctl stop ModemManager -systemctl disable ModemManager -``` - -Clone fork -```sh -git clone https://github.com/RfidResearchGroup/proxmark3.git -``` - -Get the latest commits -```sh -git pull -``` - -Install the blacklist rules and add user to dialout group (if you on a Linux/ubuntu/debian). -If you do this one, you need to logout and login in again to make sure your rights got changed. -```sh -make udev -``` - -Clean and complete compilation -```sh -make clean && make all -``` - -Flash the BOOTROM & FULLIMAGE -```sh -client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf -``` - -Change into the client folder -```sh -cd client -``` - -Run the client -```sh -./proxmark3 /dev/ttyACM0 -``` diff --git a/doc/md/Installation_Instructions/Kali-Installation-Instructions.md b/doc/md/Installation_Instructions/Kali-Installation-Instructions.md deleted file mode 100644 index 4d65afead..000000000 --- a/doc/md/Installation_Instructions/Kali-Installation-Instructions.md +++ /dev/null @@ -1,98 +0,0 @@ -# Kali Installation -Kali users usually must kill their modem manager in order for the proxmark3 to enumerate properly. -```sh -sudo apt remove modemmanager -``` - -# Video Installation guide -[![Kali Installation tutorial](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS/blob/master/screenshot-www.youtube.com-2019.03.17-20-44-33.png)](https://youtu.be/t5eBPS6lV3E "Kali Linux Installation Tutorial") - - ---- -## Manual Install -First what we want to do is get an update for the system. If you need to upgrade do this **before** the install -An upgrade was carried out prior to following these instructions. - -### Update -```sh -sudo apt-get update -``` -### Requirements. - -```sh -sudo apt-get install p7zip git build-essential libreadline5 libreadline-dev \ -libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi -``` -If you do get any issues during the requirements installation, I have found it to help using the synaptic package manager. - -### Clone Fork -```sh -git clone https://github.com/RfidResearchGroup/proxmark3.git -``` - -### Change directory into the directory created -```sh -cd proxmark3 -``` - -### Get the latest commits -```sh -git pull -``` - -### Remove Modem Manager -```sh -sudo apt remove modemmanager -``` -### Reboot Kali -```sh - reboot -``` - -### Change directory back to proxmark3 -```sh -cd proxmark3 -``` - -### Clean and Compile -Clean and complete compile - -```sh - make clean && make all -``` -### Check Connection -Once this is complete run the following comands to make sure the proxmark is being picked up by your computer. - -```sh -sudo dmesg | grep -i usb -``` -It should show up as a CDC device: -```sh -[10416.555108] usb 2-1.2: Product: PM3 -[10416.555111] usb 2-1.2: Manufacturer: proxmark.org -[10416.555871] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device -``` - -### Flash the BOOTROM & FULLIMAGE - ```sh - client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf -``` -> **Note** If you have any issues connecting or during the flash, follow the steps listed [here](https://github.com/RfidResearchGroup/proxmark3/issues/35) and use the command sudo apt remove modemmanager - - -### Change into the client folder - -```sh -cd client -``` - -### Run the client - ```sh -./proxmark3 /dev/ttyACM0 -``` - -### Run a test command - ```sh -hw tune -``` - diff --git a/doc/md/Installation_Instructions/Linux-Installation-Instructions.md b/doc/md/Installation_Instructions/Linux-Installation-Instructions.md new file mode 100644 index 000000000..27d315359 --- /dev/null +++ b/doc/md/Installation_Instructions/Linux-Installation-Instructions.md @@ -0,0 +1,89 @@ +# External resources + +You might want to follow one of these external resources to get an overview, but please still read carefully this page as some instructions may vary. + +* [Kali Video Installation guide](https://youtu.be/t5eBPS6lV3E "Kali Linux Installation Tutorial") +* [Ubuntu Video Installation guide](https://youtu.be/DThmkH8CdMo "Ubuntu Installation Tutorial") +* [ParrotOS Video Installation guide](https://youtu.be/Wl9AsrU4igo "ParrotOS Installation Tutorial") + +![Linux Installation Video Screenshot](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS/blob/master/screenshot-www.youtube.com-2019.03.17-20-44-33.png) + +* ParrotOS: some further notes can be found at @5w0rdfish repo [Proxmark Installation for Parrot OS](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS) +* Ubuntu 14.04.2 LTS, 15.10 or 16.04 GC updates on the [Proxmark3 Ubuntu wiki page](https://github.com/Proxmark/proxmark3/wiki/Ubuntu%20Linux) +* A nice and cool install script made by @daveio is found here: https://github.com/daveio/attacksurface/blob/master/proxmark3/pm3-setup.sh (unavailable?) +* Iceman has also added this script to the fork. https://github.com/RfidResearchGroup/proxmark3/blob/master/install.sh + + +# Install the required dependencies + +## On Debian / Ubuntu / Kali / ParrotOS + +First what we want to do is get an update for the system. If you need to upgrade do this **before** the install. An upgrade was carried out prior to following these instructions. + +Update the packages list +```sh +sudo apt-get update +``` +Install the requirements + +```sh +sudo apt-get install p7zip git ca-certificates build-essential libreadline5 libreadline-dev \ +libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib +``` + +## On ArchLinux + +```sh +sudo pacman -Sy base-devel p7zip libusb readline ncurses arm-none-eabi-newlib --needed +``` +```sh +yaourt -S termcap +``` + +# Clone the RRG/Iceman repository + +```sh +git clone https://github.com/RfidResearchGroup/proxmark3.git +``` + +# Check ModemManager + +**Very important**: make sure ModemManager will not interfer, otherwise it could brick your Proxmark3! +Read carefully [this page about ModemManager](ModemManager-Must-Be-Discarded.md) and follow its instructions. + +# Check connection + +Check the proxmark is being picked up by your computer. Plug it in, then: + +```sh +sudo dmesg | grep -i usb +``` +It should show up as a CDC device: +``` +usb 2-1.2: Product: PM3 +usb 2-1.2: Manufacturer: proxmark.org +cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device +``` +And a new `/dev/ttyACM0` should have appeared. + +# Get permissions to use /dev/ttyACM0 + +Add current user to the proper group to get permission to use `/dev/ttyACM0`. + +This step can be done from the RRG/Iceman Proxmark3 repo with: + +```sh +make accessrights +``` + +Then, you *need* to logout and login in again for your new group membership to be fully effective. + +To test you have the proper read & write rights, plug the Proxmark3 and execute: +```sh +[ -r /dev/ttyACM0 ] && [ -w /dev/ttyACM0 ] && echo ok +``` +It must return `ok`. Otherwise this means you've a permissions problem to fix. + +# Compile and use the project + +Now you're ready to follow the [compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md). diff --git a/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md b/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md index 61ab754d5..0f6151869 100644 --- a/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md +++ b/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md @@ -1,6 +1,6 @@ -## Homebrew (Mac OS X) -These instructions comes from @Chrisfu, where I got the proxmark3.rb scriptfile from. -Further questions about Mac & Homebrew, contact @Chrisfu (https://github.com/chrisfu/) +# Homebrew (Mac OS X) +These instructions comes from @Chrisfu, where we got the proxmark3.rb scriptfile from. +For further questions about Mac & Homebrew, contact @Chrisfu (https://github.com/chrisfu/) 1. Install homebrew if you haven't yet already done so: http://brew.sh/ @@ -8,22 +8,37 @@ Further questions about Mac & Homebrew, contact @Chrisfu (https://github.com/c 3. Install Proxmark3: `brew install proxmark3` for stable release or `brew install --HEAD proxmark3` for latest non-stable from GitHub. -Upgrading HomeBrew tap formula ------------------------------ -*This method is useful for those looking to run bleeding-edge versions of iceman's client. Keep this in mind when attempting to update your HomeBrew tap formula as this procedure could easily cause a build to break if an update is unstable on macOS.* +## Upgrading HomeBrew tap formula + +*This method is useful for those looking to run bleeding-edge versions of RRG/iceman's client. Keep this in mind when attempting to update your HomeBrew tap formula as this procedure could easily cause a build to break if an update is unstable on macOS.* Tested on macOS High Sierra 10.13.2 -*Note: This assumes you have already installed iceman's fork from HomeBrew as mentioned above* +*Note: This assumes you have already installed RRG/iceman's fork from HomeBrew as mentioned above* -1. Force HomeBrew to pull the latest source from github -`brew upgrade --fetch-HEAD RfidResearchGroup/proxmark3` +Force HomeBrew to pull the latest source from github +``` +brew upgrade --fetch-HEAD RfidResearchGroup/proxmark3 +``` + +## Flash the BOOTROM & FULLIMAGE + +With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark3 as you plug it into a USB port. Continue to hold the button until after this step is complete and the `proxmark3-flasher` command outputs "Have a nice day!"* + +`$ sudo proxmark3-flasher /dev/tty.usbmodem881 -b /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/bootrom.elf /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/fullimage.elf` + +## Run the client + +```sh +sudo proxmark3 /dev/tty.usbmodem881 +``` + +## Next steps + +For the next steps, please read the following pages: + +* [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) +* [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md) +* [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)| -2. Flash the bootloader & fullimage.elf - * With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark 3 as you plug it into a USB port. Continue to hold the button until after this step is complete and the `proxmark3-flasher` command outputs "Have a nice day!"* - `$ sudo proxmark3-flasher /dev/tty.usbmodem881 -b /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/bootrom.elf /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/fullimage.elf` - -`$ sudo proxmark3-flasher /dev/tty.usbmodem881 ` - -4. Enjoy the update diff --git a/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md b/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md new file mode 100644 index 000000000..68b69ea7b --- /dev/null +++ b/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md @@ -0,0 +1,132 @@ +# If you're a Linux user + +ModemManager is a real threat that can lead to a bricked Proxmark3, read this very attentively. + +**The problem:** + +ModemManager is pre-installed on many different Linux distributions, very probably yours as well. +It's intended to prepare and configure the mobile broadband (2G/3G/4G) devices, whether they are built-in or dongles. +Some are serial, so when the Proxmark3 is plugged and a `/dev/ttyACM0` appears, ModemManager attempts to talk to it to see if it's a modem replying to AT commands. + +Now imagine what happens when you're flashing your Proxmark3 and ModemManager suddently starts sending bytes to it at the same time... +Yes it makes the flashing failing. And if it happens while you're flashing the bootloader, it will require a JTAG device to unbrick the Proxmark3. + +ModemManager is a threat for the Proxmark3, but also for many other embedded devices, such as some Arduino platforms. + +# Solution 1: remove ModemManager + +If you don't need ModemManager, the safest is to remove it entirely. + +On Debian-alike (Ubuntu, Kali,...): +```sh +sudo apt remove modemmanager +``` +On Archlinux: +```sh +sudo pacman -R modemmanager +``` + +# Solution 2: disable ModemManager + +```sh +sudo systemctl stop ModemManager +sudo systemctl disable ModemManager +``` + +# Solution 3: use filtering udev rules + +If you *really* need ModemManager, e.g. for your 4G device, you'll have to use some filtering rules to make sure it doesn't interfer with the Proxmark3. + +Once you have cloned the Proxmark3 repository, you can run `make udev` to install udev rules that will tell ModemManager to not look at your Proxmark3. + +**BEWARE** it will not work if your ModemManager installation is using a `strict` policy, which is the case on some distributions. +So you'll need first to check what `filter-policy` is used on your distribution: + +```sh +systemctl status ModemManager +``` +``` +● ModemManager.service - Modem Manager + Loaded: loaded (/lib/systemd/system/ModemManager.service... + Active: active (running) since ... + ... + CGroup: /system.slice/ModemManager.service + └─XXXX /usr/sbin/ModemManager --filter-policy=strict +``` + +If it's using `filter-policy=strict`, either look at [solution 4](#solution-4-use-global-ttyACM-filtering-rule) or change the filter policy of your system. + +In any case, it's very important that you test if the filtering is effective before attempting to flash your Proxmark3, see section [Testing ModemManager filtering effectiveness](#Testing-ModemManager-filtering-effectiveness). + +# Solution 4: use global ttyACM filtering rule + +Edit the system ModemManager configuration: +```sh +sudo systemctl edit ModemManager.service +``` +And add the following content to add a global ttyACM filtering rule: +``` +[Service] +Environment="MM_FILTER_RULE_TTY_ACM_INTERFACE=0" +``` +This will create the following file: `/etc/systemd/system/ModemManager.service.d/override.conf`. Then restart the service: +```sh +sudo service ModemManager restart +``` + +It's very important that you test if the filtering is effective before attempting to flash your Proxmark3, see section [Testing ModemManager filtering effectiveness](#Testing-ModemManager-filtering-effectiveness). + +# Testing ModemManager filtering effectiveness + +If you chose to keep ModemManager, test the filtering effectiveness before attempting to flash Proxmark3. + +**Reboot** + +Turn systemd debug on and watch logs: +```sh +sudo mmcli -G DEBUG +sudo journalctl -f|grep "ModemManager.*\[filter\]" +``` +Now plug in the Proxmark 3. + +If ModemManager interfers, you'll get logs like this: +``` +ModemManager[xxxxx]: [filter] (tty/ttyACM0): port allowed: cdc-acm interface reported AT-capable +``` +It it's the case, you *need to fix your ModemManager issues* before using the Proxmark3. + +When ModemManager is properly filtering `/dev/ttyACM0`: +``` +ModemManager[xxxxx]: [filter] (tty/ttyACM0) port filtered: forbidden +``` +If this is the case, you're fine and you can safely use and flash the PRoxmark3 on your system. + +To turn systemd debug off again: +```sh +sudo mmcli -G ERR +``` + +# I didn't read carefully this page and now my Proxmark3 is not responding + +First of all, follow the instructions above to make sure ModemManager will not interfer with the Proxmark3 anymore. + +Now there are two possibilities: + +## Only the fullimage is damaged + +If the flashing of the fullimage failed, you can still force the Proxmark to start in bootloader mode by keeping the button pressed while you're plugging it in and while you're attempting to flash it again. + +In short: + +* unplug device +* press button and keep it pressed (IMPORTANT) +* plug in device +* run flash command `sudo client/flasher /dev/ttyACM0 armsrc/obj/fullimage.elf` +* wait until flash is finished +* release button +* un/plug device + +## The bootloader is damaged + +If attempting to flash via the button fails, this means your bootloader is corrupted. +You'll have no other choice than flashing it via an external JTAG instrument. diff --git a/doc/md/Installation_Instructions/Parrot-OS-Proxmark3-RDV4-installation.md b/doc/md/Installation_Instructions/Parrot-OS-Proxmark3-RDV4-installation.md deleted file mode 100644 index 7b6187e1a..000000000 --- a/doc/md/Installation_Instructions/Parrot-OS-Proxmark3-RDV4-installation.md +++ /dev/null @@ -1,98 +0,0 @@ - -# Parrot OS Installation - -## Notes - -Some further notes can be found at @5w0rdfish repo [Proxmark Installation for Parrot OS](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS) - -# Video Installation guide -[![ParrotOS Installation tutorial](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS/blob/master/screenshot-www.youtube.com-2019.03.17-20-44-33.png)](https://youtu.be/Wl9AsrU4igo "ParrotOS Installation Tutorial") - - ---- -## Manual Install -First what we want to do is get an update for the system. If you need to upgrade do this **before** the install - -### Update -```sh -sudo apt-get update -``` -### Requirements. - -```sh -sudo apt-get install p7zip git build-essential libreadline5 libreadline-dev \ -libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi -``` -If you do get any issues during the requirements installation, I have found it to help using the synaptic package manager. - -### Clone Fork -```sh -git clone https://github.com/RfidResearchGroup/proxmark3.git -``` - -### Change directory into the directory created -```sh -cd proxmark3 -``` - -### Get the latest commits -```sh -git pull -``` - -### Make Udev -Iceman has made the udev script which takes care of the blacklist rules. This should take care of the remove modem manager. -The make udev command also create's an alias for the pm3 under /dev which you will use to connect to the proxmark. - -```sh -sudo make udev -``` - -> **Note** If you have any issues connecting or during the flash, follow the steps listed [here](https://github.com/RfidResearchGroup/proxmark3/issues/35) and use the command sudo apt remove modemmanager - -Log out and log back in again. And now we are all set to take the next step. - -### Clean and Compile -Clean and complete compilation *within the proxmark3 folder* - -```sh - make clean && make all -``` -### Check Connection -Once this is complete run the following comands to make sure the proxmark is being picked up by your computer. - -```sh -sudo dmesg | grep -i usb -``` -It should show up as a CDC device: -```sh -[10416.555108] usb 2-1.2: Product: PM3 -[10416.555111] usb 2-1.2: Manufacturer: proxmark.org -[10416.555871] cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device -``` - -### Flash the BOOTROM & FULLIMAGE - ```sh - client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf -``` -### Change into the client folder - -```sh -cd client -``` -### Run the client - ``` sh -./proxmark3 /dev/pm #press tab on the keyboard for it to detect the proxmark -``` -or - -### Run the client - ```sh -./proxmark3 /dev/ttyACM0 -``` - -### Run a test command - ```sh -hw tune -``` - diff --git a/doc/md/Installation_Instructions/Ubuntu-Installation-Instructions.md b/doc/md/Installation_Instructions/Ubuntu-Installation-Instructions.md deleted file mode 100644 index 6df3b704e..000000000 --- a/doc/md/Installation_Instructions/Ubuntu-Installation-Instructions.md +++ /dev/null @@ -1,102 +0,0 @@ -# Setup and build for UBUNTU -## Notes -GC made updates to allow this to build easily on Ubuntu 14.04.2 LTS, 15.10 or 16.04 -See the [Proxmark3 Ubuntu wiki page](https://github.com/Proxmark/proxmark3/wiki/Ubuntu%20Linux) - -A nice and cool install script made by @daveio is found here: -https://github.com/daveio/attacksurface/blob/master/proxmark3/pm3-setup.sh - -Iceman has also added this script to the fork. -https://github.com/RfidResearchGroup/proxmark3/blob/master/install.sh - -# Video Installation guide -[![ParrotOS Installation tutorial](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS/blob/master/screenshot-www.youtube.com-2019.03.17-20-44-33.png)](https://youtu.be/DThmkH8CdMo "Ubuntu Installation Tutorial") - ---- -## Manual Installation -### Update - -```sh -sudo apt-get update -``` -### Requirements - -```sh -sudo apt-get install p7zip git build-essential libreadline5 libreadline-dev libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi -``` - -### Clone Fork - -```sh -git clone https://github.com/RfidResearchGroup/proxmark3.git -``` -### Change Directory - -```sh -cd proxmark3 -``` - -### Get the latest commits - -```sh -git pull -``` - -### Install the blacklist rules and add user to dialout group. - -```sh -sudo make udev -``` - -### Restart -Restart Ubuntu - -### Enter proxmark folder -```sh -cd proxmark3 -``` -### Clean and Compile -```sh -make clean && make all -``` -### Check Connection -Once this is complete run the following comands to make sure the proxmark is being picked up by your computer. - -```sh -sudo dmesg | grep -i usb -``` - -### Flash the BOOTROM & FULLIMAGE - ```sh - client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf -``` - -### Issues -If you have issues with the install please try the following below or head on over to the proxmark forum. -#### Remove Modem Manager - -```sh -sudo apt remove modemmanager -``` -and then restart ubuntu. - -### Change into the client folder -```sh -cd client -``` - -### Run the client - ``` sh -./proxmark3 /dev/pm #press tab on the keyboard for it to detect the proxmark -``` -or - -### Run the client - ```sh -./proxmark3 /dev/ttyACM0 -``` - -### Run a test command - ```sh -hw tune -``` diff --git a/doc/md/Installation_Instructions/Windows-Installation-Instructions.md b/doc/md/Installation_Instructions/Windows-Installation-Instructions.md index 6a20a510f..b140bc168 100644 --- a/doc/md/Installation_Instructions/Windows-Installation-Instructions.md +++ b/doc/md/Installation_Instructions/Windows-Installation-Instructions.md @@ -30,54 +30,37 @@ Download the required proxspace repo. https://github.com/Gator96100/ProxSpace/ Extract 'ProxSpace' to a location on drive without spaces. For example D:\OneDrive\Documents\GitHub is ok whereas C:\My Documents\My Projects\proxspace is not. -### Clone RFID RESEARCH GROUP files +### Clone the RRG/Iceman repository -Clone fork ```sh git clone https://github.com/RfidResearchGroup/proxmark3.git ``` + ### Copy files to Proxspace -Copy all the contents from the proxmark3 folder into the proxspace pm3 folder +Copy all the contents from the `proxmark3` folder into the proxspace `pm3` folder ### Run the .bat -Run runme.bat or runme64.bat depending on your Windows architecture. +Run `runme.bat` or `runme64.bat` depending on your Windows architecture. -Please note you will need to use / as you are using BASH. +Please note you will need to use `/` as you are using BASH. -### Make +### Compile and use the project -CLEAN COMPILE inside the pm3 window. -```sh -make clean && make all -``` -### Flash the image +Now you're ready to follow the [compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md). + +The only differences are that executables end with `.exe` (e.g. `client/flasher.exe`) and that the Proxmark3 port is one of your `comX` ports where "X" is the com port number assigned to proxmark3 under Windows. + +So flashing will resemble -Flash the BOOTROM & FULLIMAGE ```sh client/flasher.exe comX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf ``` - -### Run the client -Assuming you have Proxmark3 Windows drivers installed you can run the Proxmark software where "X" is the com port number assigned to proxmark3 under Windows. +And running the client will resemble -Change into the client folder ```sh cd client -``` - -Run the client -```sh ./proxmark3.exe comX ``` - -### Test - -Check your firmware revision on the Proxmark III with -```sh -hw ver -``` -For basic help type help. Or for help on a set of sub commands type the command followed by help. For example hf mf help. -Make sure you head over to the use of [proxmark area](https://github.com/5w0rdfish/proxmark3/tree/master/Use_of_Proxmark) to help you get on your way! diff --git a/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md b/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md new file mode 100644 index 000000000..4950e2f6e --- /dev/null +++ b/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md @@ -0,0 +1,36 @@ +# Compilation instructions + +## Get the latest commits + +```sh +cd proxmark3 +git pull +``` + +## Clean and compile everything + +```sh +make clean && make all +``` + +## Flash the BOOTROM & FULLIMAGE + +```sh +client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf +``` + +## Run the client + +```sh +cd client +./proxmark3 /dev/ttyACM0 +``` + +## Next steps + +For the next steps, please read the following pages: + +* [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) +* [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md) +* [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)| + diff --git a/doc/md/Use_of_Proxmark/1_Validation.md b/doc/md/Use_of_Proxmark/1_Validation.md index 334150fe8..e774df4dd 100644 --- a/doc/md/Use_of_Proxmark/1_Validation.md +++ b/doc/md/Use_of_Proxmark/1_Validation.md @@ -1,57 +1,86 @@ ## 1. Validating proxmark client functionality If all went well you should get some information about the firmware and memory usage as well as the prompt, something like this. -We should be able to answer ..can I connect to my proxmark device? does it respond? ->[=] UART Setting serial baudrate 460800 -> ->Proxmark3 RFID instrument -> -> [ CLIENT ] -> -> client: iceman build for RDV40 with flashmem; smartcard; -> -> [ ARM ] -> -> bootrom: iceman/master/4517531c-dirty-unclean 2018-12-13 15:42:24 -> -> os: iceman/master/5a34550a-dirty-unclean 2019-01-07 23:04:07 -> -> [ FPGA ] -> -> LF image built for 2s30vq100 on 2018/ 9/ 8 at 13:57:51 -> -> HF image built for 2s30vq100 on 2018/ 9/ 3 at 21:40:23 -> -> [ Hardware ] -> ->--= uC: AT91SAM7S512 Rev B -> ->--= Embedded Processor: ARM7TDMI -> ->--= Nonvolatile Program Memory Size: 512K bytes, Used: 247065 bytes (47%) Free: 277223 bytes (53%) -> ->--= Second Nonvolatile Program Memory Size: None -> ->--= Internal SRAM Size: 64K bytes -> ->--= Architecture Identifier: AT91SAM7Sxx Series -> ->--= Nonvolatile Program Memory Type: Embedded Flash Memory -> -> pm3 --> +``` -### Run the following commands - pm3 --> hw status - pm3 --> hw version - pm3 --> hw tune +██████╗ ███╗ ███╗ ████╗ ...iceman fork +██╔══██╗████╗ ████║ ══█║ ...dedicated to RDV40 +██████╔╝██╔████╔██║ ████╔╝ +██╔═══╝ ██║╚██╔╝██║ ══█║ iceman@icesql.net +██║ ██║ ╚═╝ ██║ ████╔╝ https://github.com/rfidresearchgroup/proxmark3/ +╚═╝ ╚═╝ ╚═╝ ╚═══╝ pre-release v4.0 -You are now ready to use your newly upgraded proxmark3 device. Many commands uses the **h** parameter to show a help text. The client uses a arcaic command structure which will be hard to grasp at first. Here are some commands to start off with. +Support iceman on patreon, https://www.patreon.com/iceman1001/ - pm3 --> hf - pm3 --> hf 14a info - pm3 --> lf - pm3 --> lf search -### Quit client - pm3 --> quit +[=] Using UART port /dev/pm3-0 +[=] Communicating with PM3 over USB-CDC + + [ Proxmark3 RFID instrument ] + + + [ CLIENT ] + client: RRG/Iceman + + [ PROXMARK RDV4 ] + external flash: present + smartcard reader: present + + [ PROXMARK RDV4 Extras ] + FPC USART for BT add-on support: absent + + [ ARM ] + bootrom: RRG/Iceman/master/5ab9716e 2019-05-01 11:02:08 + os: RRG/Iceman/master/6b5a0f83 2019-05-04 23:57:47 + + [ FPGA ] + LF image built for 2s30vq100 on 2019/ 4/18 at 9:35:32 + HF image built for 2s30vq100 on 2018/ 9/ 3 at 21:40:23 + + [ Hardware ] + --= uC: AT91SAM7S512 Rev B + --= Embedded Processor: ARM7TDMI + --= Nonvolatile Program Memory Size: 512K bytes, Used: 250913 bytes (48%) Free: 273375 bytes (52%) + --= Second Nonvolatile Program Memory Size: None + --= Internal SRAM Size: 64K bytes + --= Architecture Identifier: AT91SAM7Sxx Series + --= Nonvolatile Program Memory Type: Embedded Flash Memory + + +pm3 --> +``` + +This `pm3 --> ` is the Proxmark3 interactive prompt. + + +### To get interactive help + +For basic help type `help`. Or for help on a set of sub commands type the command followed by `help`. For example `hf mf help`. + +### First tests + +These commands will return some info about your Proxmark software and hardware status. +``` +pm3 --> hw status +pm3 --> hw version +pm3 --> hw tune +``` + +You are now ready to use your newly flashed proxmark3 device. Many commands uses the `h` parameter to show a help text. + +### To quit the client +``` +pm3 --> quit +``` +or simple press `CTRL-D`. + +## Next steps + +Some configuration steps are still needed. + +For the next steps, please read the following pages: + +* [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md) +* [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)| + diff --git a/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md b/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md index e226652c6..97353c4c2 100644 --- a/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md +++ b/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md @@ -1,38 +1,56 @@ ### First things on your RDV40 You will need to run these commands to make sure your rdv4 is prepared - - pm3 --> mem load f default_keys m - pm3 --> mem load f default_pwd t - pm3 --> mem load f default_iclass_keys i - pm3 --> lf t55xx deviceconfig a 29 b 17 c 15 d 47 e 15 p +``` +pm3 --> mem load f default_keys m +pm3 --> mem load f default_pwd t +pm3 --> mem load f default_iclass_keys i +pm3 --> lf t55xx deviceconfig a 29 b 17 c 15 d 47 e 15 p +``` ### Verify sim module firmware version + To make sure you got the latest sim module firmware. + _Lastest version is v3.11_ - pm3 --> hw status +``` +pm3 --> hw status +``` Find version in the long output, look for these two lines - #db# Smart card module (ISO 7816) - #db# version.................v2.06 +``` +#db# Smart card module (ISO 7816) +#db# version.................v2.06 +``` -This version is obselete. The following command upgrades your device sim module firmware. -Don't not turn of your device during the execution of this command. +This version is obsolete. The following command upgrades your device sim module firmware. +Don't not turn off your device during the execution of this command!! - pm3 --> sc upgrade f ../tools/simmodule/SIM011.BIN - -You get the following output, this is a successful execution. - - [!] WARNING - Smartcard socket firmware upgrade. - [!] A dangerous command, do wrong and you will brick the smart card socket - [+] Smartcard socket firmware uploading to PM3 - .. - [+] Smartcard socket firmware updating, don't turn off your PM3! - #db# FW 0000 - #db# FW 0080 - #db# FW 0100 - #db# FW 0180 - #db# FW 0200 - #db# FW 0280 - [+] Smartcard socket firmware upgraded successful +``` +pm3 --> sc upgrade f ../tools/simmodule/SIM011.BIN +``` + +You get the following output if the execution was successful: + +``` +[!] WARNING - Smartcard socket firmware upgrade. +[!] A dangerous command, do wrong and you will brick the smart card socket +[+] Smartcard socket firmware uploading to PM3 +.. +[+] Smartcard socket firmware updating, don't turn off your PM3! +#db# FW 0000 +#db# FW 0080 +#db# FW 0100 +#db# FW 0180 +#db# FW 0200 +#db# FW 0280 +[+] Smartcard socket firmware upgraded successful +``` + +## Next steps + +For the next steps, please read the following page: + +* [Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)| + diff --git a/doc/md/Use_of_Proxmark/3_Commands-and-Features.md b/doc/md/Use_of_Proxmark/3_Commands-and-Features.md index ecc9aae0f..deb7036d7 100644 --- a/doc/md/Use_of_Proxmark/3_Commands-and-Features.md +++ b/doc/md/Use_of_Proxmark/3_Commands-and-Features.md @@ -1,21 +1,37 @@ # Commands and Features +Please make sure you've gone through the following pages firstly: + +* [Compilation Instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md) +* [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) +* [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md) + +## To get interactive help + +As seen before, for basic help type `help`. Or for help on a set of sub commands type the command followed by `help`. For example `hf mf help`. Many commands uses the `h` parameter to show a help text. + ## New Features in RDV4 Further details coming soon -### Run the following commands - pm3 --> hw status - pm3 --> hw version - pm3 --> hw tune +## Useful commands -You are now ready to use your newly upgraded proxmark3 device. Many commands uses the **h** parameter to show a help text. The client uses a arcaic command structure which will be hard to grasp at first. Here are some commands to start off with. +Here are some commands to start off with. - pm3 --> hf - pm3 --> hf 14a info - pm3 --> lf - pm3 --> lf search +To get an overview of the available commands for LF RFID and HF RFID: +``` +pm3 --> lf +pm3 --> hf +``` -### Quit client - pm3 --> quit +To search quickly for known LF or HF tags: +``` +pm3 --> lf search +pm3 --> hf search +``` + +To get info on a ISO14443-A tag: +``` +pm3 --> hf 14a info +```