This commit is contained in:
iceman1001 2024-01-05 19:27:38 +01:00
parent 1cce7c286a
commit 0c4a1066c1
18 changed files with 69 additions and 61 deletions

View file

@ -6,7 +6,7 @@ Copyright (C) 2005-2007 Jonathan Westhues
Since then, each contribution is under the copyright of its respective author.
A few releases were done by the Proxmark community between 2007 and March 2009 before using version control.
A few releases were done by the Proxmark3 community between 2007 and March 2009 before using version control.
The last release which served as basis for version control, under SVN then migrated to Git, was the `20090306_ela` release by Edouard Lafargue. See the first commit of this repository.
Therefore, only the following copyright notices are left untouched in the corresponding files:

View file

@ -37,11 +37,11 @@ void ModInfo(void) {
/* This standalone implements two different modes: reading and emulating.
*
* The initial mode is reading with LED A as guide.
* In this mode, the Proxmark expects a Visa Card,
* In this mode, the Proxmark3 expects a Visa Card,
* and will act as card reader. Trying to find track 2.
*
* If the Proxmark found a track 2, it will change to emulation mode (LED C) automatically.
* During this mode the Proxmark will behave as card, emulating a Visa MSD transaction
* If the Proxmark3 found a track 2, it will change to emulation mode (LED C) automatically.
* During this mode the Proxmark3 will behave as card, emulating a Visa MSD transaction
* using the pre-saved track2 from the previous reading.
*
* It is possible to jump from mode to another by simply pressing the button.

View file

@ -46,14 +46,14 @@ void ModInfo(void) {
* standalone.
*
* For the reading mode:
* - Set up and run the other end first, to where the Proxmark will send the data.
* - Set up and run the other end first, to where the Proxmark3 will send the data.
* - After the card is detected, Proxmark3 will send a package. The first byte will be the package
* length, then, the card data. Use the first length byte to read the whole package.
* - Proxmark3 will expect a raw APDU from the other end, then it will be sent to the card.
* - The answer of the card will be sent back to the connection, repeating the cycle.
*
* For the emulation mode:
* - Set up and run the other end first, from where the Proxmark will receive the data.
* - Set up and run the other end first, from where the Proxmark3 will receive the data.
* - When the Proxmark3 detected the terminal, it will send the command to the connection.
* - The first byte will be the package length, then, the terminal command. Use the first
* length byte to read the whole package.

View file

@ -36,19 +36,19 @@ void ModInfo(void) {
/* This standalone implements four different modes: reading, simulating, dumping, & emulating.
*
* The initial mode is reading with LEDs A & D.
* In this mode, the Proxmark is looking for an ST25TA card like those used by the IKEA Rothult,
* In this mode, the Proxmark3 is looking for an ST25TA card like those used by the IKEA Rothult,
* it will act as reader, and store the UID for simulation.
*
* If the Proxmark gets an ST25TA UID, it will change to simulation mode (LEDs A & C) automatically.
* During this mode the Proxmark will pretend to be the IKEA Rothult ST25TA master key, upon presentation
* to an IKEA Rothult the Proxmark will steal the 16 byte Read Protection key used to authenticate to the card.
* If the Proxmark3 gets an ST25TA UID, it will change to simulation mode (LEDs A & C) automatically.
* During this mode the Proxmark3 will pretend to be the IKEA Rothult ST25TA master key, upon presentation
* to an IKEA Rothult the Proxmark3 will steal the 16 byte Read Protection key used to authenticate to the card.
*
* Once it gets the key, it will switch to dump mode (LEDs C & D) automatically. During this mode the Proxmark
* Once it gets the key, it will switch to dump mode (LEDs C & D) automatically. During this mode the Proxmark3
* will act as a reader once again, but now we know the Read Protection key to authenticate to the card to dump
* it's contents so we can achieve full emulation.
*
* Once it dumps the contents of the card, it will switch to emulation mode (LED C) automatically.
* During this mode the Proxmark should function as the original ST25TA IKEA Rothult Master Key
* During this mode the Proxmark3 should function as the original ST25TA IKEA Rothult Master Key
*
* Keep pressing the button down will quit the standalone cycle.
*

View file

@ -44,7 +44,7 @@
Notes about EM4xxx timings.
The timing values differs between cards, we got EM410x, EM43x5, EM445x etc.
We are trying to unify and enable the Proxmark to easily detect and select correct timings automatic.
We are trying to unify and enable the Proxmark3 to easily detect and select correct timings automatic.
The measures from datasheets doesn't always match correct the hardware features of RDV4 antenans and we still wanted to let other devices with other custom antennas
still benefit from this repo. This is why its configurable and we use to set these dynamic settings in device external flash memory.

View file

@ -348,7 +348,7 @@ function main(args)
-- commandString = AUTH_FIRST .. "0190" .. "00"
-- response = sendRaw(commandString, true, true)
-- Power off the Proxmark
-- Power off the Proxmark3
sendRaw(POWEROFF, false, false)
lib14a.disconnect()

View file

@ -838,7 +838,7 @@ int TestProxmark(pm3_device_t *dev) {
if ((resp.length != sizeof(g_pm3_capabilities)) || (resp.data.asBytes[0] != CAPABILITIES_VERSION)) {
PrintAndLogEx(ERR, _RED_("Capabilities structure version sent by Proxmark3 is not the same as the one used by the client!"));
PrintAndLogEx(ERR, _RED_("Please flash the Proxmark with the same version as the client."));
PrintAndLogEx(ERR, _RED_("Please flash the Proxmark3 with the same version as the client."));
return PM3_EDEVNOTSUPP;
}

View file

@ -31,15 +31,16 @@ pm3_device_t *pm3_open(const char *port) {
pm3_init();
OpenProxmark(&g_session.current_device, port, false, 20, false, USART_BAUD_RATE);
if (g_session.pm3_present && (TestProxmark(g_session.current_device) != PM3_SUCCESS)) {
PrintAndLogEx(ERR, _RED_("ERROR:") " cannot communicate with the Proxmark\n");
PrintAndLogEx(ERR, _RED_("ERROR:") " cannot communicate with the Proxmark3\n");
CloseProxmark(g_session.current_device);
}
if ((port != NULL) && (!g_session.pm3_present))
exit(EXIT_FAILURE);
if (!g_session.pm3_present)
PrintAndLogEx(INFO, "Running in " _YELLOW_("OFFLINE") " mode");
if (!g_session.pm3_present) {
PrintAndLogEx(INFO, _RED_("OFFLINE") " mode");
}
// For now, there is no real device context:
return g_session.current_device;
}

View file

@ -179,7 +179,7 @@ static int check_comm(void) {
if (IsCommunicationThreadDead() && g_session.pm3_present) {
#ifndef HAVE_READLINE
PrintAndLogEx(INFO, "Running in " _YELLOW_("OFFLINE") " mode. Use "_YELLOW_("\"hw connect\"") " to reconnect\n");
PrintAndLogEx(INFO, _YELLOW_("OFFLINE") " mode. Use "_YELLOW_("\"hw connect\"") " to reconnect\n");
#endif
prompt_dev = PROXPROMPT_DEV_OFFLINE;
char prompt[PROXPROMPT_MAX_SIZE] = {0};
@ -1135,19 +1135,22 @@ int main(int argc, char *argv[]) {
}
if (g_session.pm3_present && (TestProxmark(g_session.current_device) != PM3_SUCCESS)) {
PrintAndLogEx(ERR, _RED_("ERROR:") " cannot communicate with the Proxmark\n");
PrintAndLogEx(ERR, _RED_("ERROR:") " cannot communicate with the Proxmark3\n");
CloseProxmark(g_session.current_device);
}
if ((port != NULL) && (!g_session.pm3_present))
if ((port != NULL) && (!g_session.pm3_present)) {
exit(EXIT_FAILURE);
}
if (!g_session.pm3_present)
PrintAndLogEx(INFO, "Running in " _YELLOW_("OFFLINE") " mode. Check " _YELLOW_("\"%s -h\"") " if it's not what you want.\n", exec_name);
if (!g_session.pm3_present) {
PrintAndLogEx(INFO, _YELLOW_("OFFLINE") " mode. Check " _YELLOW_("\"%s -h\"") " if it's not what you want.\n", exec_name);
}
// ascii art only in interactive client
if (!script_cmds_file && !script_cmd && g_session.stdinOnTTY && g_session.stdoutOnTTY && !flash_mode && !reboot_bootloader_mode)
if (!script_cmds_file && !script_cmd && g_session.stdinOnTTY && g_session.stdoutOnTTY && !flash_mode && !reboot_bootloader_mode) {
showBanner();
}
// Save settings if not loaded from settings json file.
// Doing this here will ensure other checks and updates are saved to over rule default

View file

@ -16,7 +16,7 @@ The client should autodetect color support when starting.
You can also use the command `pref show` to see and set your personal setting.
Why use colors in the Proxmark client? When everything is white it is hard to extract the important information fast. You also need new-lines for extra space to be easier to read.
Why use colors in the Proxmark3 client? When everything is white it is hard to extract the important information fast. You also need new-lines for extra space to be easier to read.
We have gradually been introducing this color scheme into the client since we got decent color support on all systems: OSX, Linux, WSL, Proxspace.

View file

@ -2,7 +2,7 @@
<a id="top"></a>
# Table of Contents
- [Notes on ARM & FPGA communications](#notes-on-arm--fpga-communications)
- [Notes on ARM \& FPGA communications](#notes-on-arm--fpga-communications)
- [Table of Contents](#table-of-contents)
- [INTERFACE FROM THE ARM TO THE FPGA](#interface-from-the-arm-to-the-fpga)
- [FPGA](#fpga)
@ -194,7 +194,7 @@ communicating this to the FPGA.
The microcontroller (ARM) implements the transport layer. First it decodes the samples received from
the FPGA. These samples are stored in a Direct Memory Access (DMA) buffer. The samples are binary
sequences that represent whether the signal was high or low. The software on the ARM tries to decode
these samples. When the Proxmark is in sniffing mode this is done for both the Manchester and Modified
these samples. When the Proxmark3 is in sniffing mode this is done for both the Manchester and Modified
Miller at the same time. Whenever one of the decoding procedures returns a valid message, this message
is stored in another buffer (BigBuf) and both decoding procedures are set to an un-synced state. The
BigBuf is limited to the available memory on the ARM. The current firmware has 2 KB of memory

View file

@ -141,7 +141,7 @@ Now there are two possibilities:
## Only the fullimage is damaged
^[Top](#top)
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.
If the flashing of the fullimage failed, you can still force the Proxmark3 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:

View file

@ -56,7 +56,7 @@ This is *NOT* intended to be a full description of how to use USBIPD.
Rather, this is intended only to give a starting point, as ***the values
shown here are extremely likely to differ per machine***.
It's presumed that you've already installed USBIPD. Plug the Proxmark
It's presumed that you've already installed USBIPD. Plug the Proxmark3
device into a USB port. Then, from a `cmd.exe` or `wt.exe` ***launched
with administrative permissions***:

View file

@ -66,7 +66,7 @@ For commands being sent to the Proxmark3:
* `data`: variable length payload
* `crc`: either an actual CRC (crc14a) or a Magic placeholder (`a3`)
For responses from the Proxmark:
For responses from the Proxmark3:
uint32_t magic;
uint16_t length : 15;

View file

@ -27,7 +27,7 @@
With the recent (2019-09-01) changes and creation of `make install` command it is easy to get lost.
If you install the Proxmark tools with `make install`, they will go under the prefix `/usr/local/` but if you install the tools from your distro, there are chances the path is `/usr` so you'll have to adapt the paths presented here.
If you install the Proxmark3 tools with `make install`, they will go under the prefix `/usr/local/` but if you install the tools from your distro, there are chances the path is `/usr` so you'll have to adapt the paths presented here.
# Installed elements
^[Top](#top)

View file

@ -2,32 +2,36 @@
<a id="top"></a>
## Table of Contents
* [ Requirements ](#requirements)
* [ Notes ](#notes)
* [ Setup ](#setup)
* [ Setting up Termux ](#setting-up-termux)
* [ Install Proxmark3 package ](#install-proxmark3-package)
* [ PC-like method ](#pc-like-method)
* [ Specific requirements ](#specific-requirements)
* [ USB_ACM ](#usb_acm)
* [ Enable the driver ](#enable-the-driver)
* [ Building the kernel ](#building-the-kernel)
* [ Flashing the kernel ](#flashing-the-kernel)
* [ Testing ](#testing)
* [ Troubleshooting ](#troubleshooting)
* [ TCP/UDP bridge method ](#tcpudp-bridge-method)
* [ USB connection ](#usb-connection)
* [ USB-UART bridge application for TCP to USB bridging](#usb-uart-bridge-application-for-tcp-to-usb-bridging)
* [ USB-UART Bridge Application for UDP to USB bridging](#usb-uart-bridge-application-for-udp-to-usb-bridging)
* [ Bluetooth connection ](#bluetooth-connection)
* [ BT-UART bridge application for TCP to BT bridging](#bt-uart-bridge-application-for-tcp-to-bt-bridging)
* [ TCP connection ](#tcp-connection)
* [ UDP connection ](#udp-connection)
* [Troubleshooting](#troubleshooting-1)
* [BTADDON Missing in Firmware of PM3](#btaddon-missing-in-firmware-of-pm3)
* [Compiling and Flashing a Proxmark3 Firmware from non-root Android](#compiling-and-flashing-a-proxmark3-firmware-from-non-root-android)
* [Compiling the Proxmark3 Firmware](#compiling-the-proxmark3-firmware)
* [Flashing the Proxmark3 Firmware](#flashing-the-proxmark3-firmware)
- [Proxmark 3 on Android](#proxmark-3-on-android)
- [Table of Contents](#table-of-contents)
- [Requirements](#requirements)
- [Notes](#notes)
- [Setup](#setup)
- [Setting up Termux](#setting-up-termux)
- [Install Proxmark3 package which follows tagged releases](#install-proxmark3-package-which-follows-tagged-releases)
- [Optional: Install Proxmark3 package which offers a more up to date version from git `master` branch](#optional-install-proxmark3-package-which-offers-a-more-up-to-date-version-from-git-master-branch)
- [Optional: Building Proxmark3 client from source](#optional-building-proxmark3-client-from-source)
- [PC-like method](#pc-like-method)
- [Specific requirements](#specific-requirements)
- [USB\_ACM](#usb_acm)
- [Enable the driver](#enable-the-driver)
- [Building the kernel](#building-the-kernel)
- [Flashing the kernel](#flashing-the-kernel)
- [Testing](#testing)
- [Troubleshooting](#troubleshooting)
- [TCP/UDP bridge method](#tcpudp-bridge-method)
- [USB connection](#usb-connection)
- [USB-UART Bridge Application for TCP to USB bridging](#usb-uart-bridge-application-for-tcp-to-usb-bridging)
- [USB-UART Bridge Application for UDP to USB bridging](#usb-uart-bridge-application-for-udp-to-usb-bridging)
- [Bluetooth connection](#bluetooth-connection)
- [BT-UART Bridge Application for TCP to BT bridging](#bt-uart-bridge-application-for-tcp-to-bt-bridging)
- [TCP connection](#tcp-connection)
- [UDP connection](#udp-connection)
- [Troubleshooting](#troubleshooting-1)
- [BTADDON Missing in Firmware of PM3](#btaddon-missing-in-firmware-of-pm3)
- [Compiling and Flashing a Proxmark3 Firmware from non-root Android](#compiling-and-flashing-a-proxmark3-firmware-from-non-root-android)
- [Compiling the Proxmark3 Firmware](#compiling-the-proxmark3-firmware)
- [Flashing the Proxmark3 Firmware](#flashing-the-proxmark3-firmware)
## Requirements
^[Top](#top)
@ -249,7 +253,7 @@ $ proxmark3 tcp:localhost:4321
Using UART port tcp:localhost:4321
[!!] ERROR: cannot communicate with the Proxmark
[!!] ERROR: cannot communicate with the Proxmark3
```
Solution:

View file

@ -29,7 +29,7 @@ USB CDC (Communications Device Class) ACM (Abstract Control Model) is a way to e
On the host, it appears as a virtual serial port, e.g. `/dev/ttyACM0`.
This is the basic way to communicate with all versions of Proxmark3 (with fairly recent FW, it used to be USB-HID-based long time ago).
On the Proxmark side, USB-CDC is provided by `common/usb_cdc.c`.
On the Proxmark3 side, USB-CDC is provided by `common/usb_cdc.c`.
In the USB CDC ACM descriptors, the Proxmark3 advertises a baudrate (USART_BAUD_RATE) but this is purely informative and has no real meaning.
The real communication speed relates only to the USB link and is roughly about 7Mbps.
@ -72,7 +72,7 @@ Some specific commands are available when you add `BTADDON` to `PLATFORM_EXTRAS`
* `usart btpin`, to change the BT add-on PIN
* `usart btfactory`, to guess the current BT add-on UART settings and to reset its configuration.
`usart btfactory` changes several times the Proxmark3 USART baudrate and parity till it matches the BT add-on settings, then changes the baudrate and parity of the add-on to a default value, then changes the Proxmark USART to the same default values, so everything should be back in order. (`btfactory` does more but we're only interested in baudrate in this discussion)
`usart btfactory` changes several times the Proxmark3 USART baudrate and parity till it matches the BT add-on settings, then changes the baudrate and parity of the add-on to a default value, then changes the Proxmark3 USART to the same default values, so everything should be back in order. (`btfactory` does more but we're only interested in baudrate in this discussion)
Manual configuration is also possible with `usart txrx -d "AT+Px"` and `usart txrx -d "AT+BAUDx"`.

View file

@ -13,7 +13,7 @@
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// ISO14443-A support for the Proxmark III
// ISO14443-A support for the Proxmark3
module hi_iso14443a(
input ck_1356meg,