mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-10-23 10:53:06 +00:00
Merge branch 'master' into epassport-dg13-pesel
Signed-off-by: Iceman <iceman@iuse.se>
This commit is contained in:
9 files changed
+30
-16
No files matched your search
@@ -4,6 +4,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
|
||||
|
||||
## [unreleased][unreleased]
|
||||
- Added `tools/ePassport` - EF_DG13 is decoded, and a Polish document's PESEL is shown as the personal number when it carries no EF_DG11 (@pkilar)
|
||||
- Fixed `tools/ePassport` - a disabled button drew Kivy's banded disabled texture, which left its label unreadable (@pkilar)
|
||||
- Fixed `hf 14b` - a card asking for a waiting time extension of 4 or more left the timeout at zero, so any ISO14443-B card needing time to answer looked like it had stopped responding (@pkilar)
|
||||
- Fixed `hf mfdes chk` - now handles `-k` user supplied keys properly (@iceman1001)
|
||||
- Fixed `BigBuf_Clear_keep_EM()` - now also clear the trace length set (@iceman1001)
|
||||
|
||||
@@ -1940,6 +1940,10 @@ static int CmdSamples(const char *Cmd) {
|
||||
int n = arg_get_int_def(ctx, 1, 0);
|
||||
bool verbose = arg_get_lit(ctx, 2);
|
||||
CLIParserFree(ctx);
|
||||
if (n < 0 || n > MIN(g_pm3_capabilities.bigbuf_size - 1, MAX_GRAPH_TRACE_LEN)) {
|
||||
PrintAndLogEx(WARNING, "invalid number of samples, must be between 0 and %d", MIN(g_pm3_capabilities.bigbuf_size - 1, MAX_GRAPH_TRACE_LEN));
|
||||
return PM3_EINVARG;
|
||||
}
|
||||
return getSamples(n, verbose);
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -872,7 +872,7 @@ int CmdLFRead(const char *Cmd) {
|
||||
"Sniff low frequency signal.\n"
|
||||
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
||||
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at it.\n")
|
||||
_CYAN_("If the number of samples is more than the device memory limit (40000 now), ")
|
||||
_CYAN_("If the number of samples is more than the device memory limit, ")
|
||||
_CYAN_("it will try to use the real-time sampling mode."),
|
||||
"lf read -v -s 12000 --> collect 12000 samples\n"
|
||||
"lf read -s 3000 -@ --> oscilloscope style \n"
|
||||
@@ -891,9 +891,9 @@ int CmdLFRead(const char *Cmd) {
|
||||
bool cm = arg_get_lit(ctx, 3);
|
||||
CLIParserFree(ctx);
|
||||
|
||||
// the 40000 there should be the result of BigBuf_max_traceLen(),
|
||||
// it should be the result of BigBuf_max_traceLen(),
|
||||
// but IDK how to get it.
|
||||
bool realtime = samples > 40000;
|
||||
bool realtime = samples >= g_pm3_capabilities.bigbuf_size;
|
||||
|
||||
if (g_session.pm3_present == false)
|
||||
return PM3_ENOTTY;
|
||||
@@ -1000,7 +1000,7 @@ int CmdLFSniff(const char *Cmd) {
|
||||
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
||||
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at sniff signal.\n")
|
||||
_CYAN_(" - use ") _YELLOW_("`lf search -1`") _CYAN_(" to see if signal can be automatic decoded.\n")
|
||||
_CYAN_("If the number of samples is more than the device memory limit (40000 now), ")
|
||||
_CYAN_("If the number of samples is more than the device memory limit, ")
|
||||
_CYAN_("it will try to use the real-time sampling mode."),
|
||||
"lf sniff -v\n"
|
||||
"lf sniff -s 3000 -@ --> oscilloscope style \n"
|
||||
@@ -1019,9 +1019,9 @@ int CmdLFSniff(const char *Cmd) {
|
||||
bool cm = arg_get_lit(ctx, 3);
|
||||
CLIParserFree(ctx);
|
||||
|
||||
// the 40000 there should be the result of BigBuf_max_traceLen(),
|
||||
// it should be the result of BigBuf_max_traceLen(),
|
||||
// but IDK how to get it.
|
||||
bool realtime = samples > 40000;
|
||||
bool realtime = samples >= g_pm3_capabilities.bigbuf_size;
|
||||
|
||||
if (g_session.pm3_present == false)
|
||||
return PM3_ENOTTY;
|
||||
@@ -1847,14 +1847,14 @@ int CmdLFRelay(const char *Cmd) {
|
||||
CLIParserContext *ctx;
|
||||
CLIParserInit(&ctx, "lf relay",
|
||||
"Relay LF signal between two Proxmark3 devices over TCP.\n"
|
||||
"By default it uses PORT 8000 and uses 40000 samples from Graphbuffer\n"
|
||||
"By default it uses PORT 8000 and uses 30000 samples from Graphbuffer\n"
|
||||
" --rdr : Reading device, act as IP client and reads LF tag and sends data\n"
|
||||
" --tag : Simulation device, act as IP server and simulates relayed data\n",
|
||||
_WHITE_("Device A, reading LF tag, client") "\n"
|
||||
"lf relay --rdr --ip 192.168.1.141 -> Client, connect to IP 192.168.1.141:8000\n"
|
||||
"lf relay --rdr --ip 192.168.1.141 -p 18111 -> Client, connect to IP 192.168.1.141:18111 \n\n"
|
||||
_WHITE_("Device B, simulate LF tag, server") "\n"
|
||||
"lf relay --tag -p 8111 -> Server listening port 8111, recv 40000 samples\n"
|
||||
"lf relay --tag -p 8111 -> Server listening port 8111, recv 30000 samples\n"
|
||||
"lf relay --tag -s 10000 -> Server listening port 8000, recv 10000 samples\n"
|
||||
);
|
||||
|
||||
@@ -1863,7 +1863,7 @@ int CmdLFRelay(const char *Cmd) {
|
||||
arg_lit0(NULL, "tag", "Simulation device, act as Server"),
|
||||
arg_lit0(NULL, "rdr", "Sniffing device, act as client"),
|
||||
arg_str0("i", "ip", "<ipaddr>", "Target IPv4 address to send data to. Used with `--rdr`"),
|
||||
arg_u64_0("s", "samples", "<dec>", "Number of samples to collect (def: 40000)"),
|
||||
arg_u64_0("s", "samples", "<dec>", "Number of samples to collect (def: 30000)"),
|
||||
arg_u64_0("p", "port", "<dec>", "Port number (def: 8000)"),
|
||||
arg_param_end
|
||||
};
|
||||
@@ -1877,7 +1877,7 @@ int CmdLFRelay(const char *Cmd) {
|
||||
char ip[256] = { 0 };
|
||||
CLIParamStrToBuf(arg_get_str(ctx, 3), (uint8_t *)ip, sizeof(ip), &iplen);
|
||||
|
||||
uint64_t samples = arg_get_u64_def(ctx, 4, 40000);
|
||||
uint64_t samples = arg_get_u64_def(ctx, 4, 30000);
|
||||
uint16_t port = arg_get_u32_def(ctx, 5, 8000) & 0xFFFF;
|
||||
|
||||
CLIParserFree(ctx);
|
||||
|
||||
@@ -452,7 +452,7 @@ static int CmdCOTAGReader(const char *Cmd) {
|
||||
"(which is assumed " STR(LF_COTAG_DIVISOR) " for cotag. Use --divisor to override).\n")
|
||||
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at it.\n")
|
||||
_CYAN_(" - use ") _YELLOW_("`lf cotag demod`") _CYAN_(" to try to demodulate it.\n")
|
||||
_CYAN_("If the number of samples is more than the device memory limit (40000 now), ")
|
||||
_CYAN_("If the number of samples is more than the device memory limit, ")
|
||||
_CYAN_("it will try to use the real-time sampling mode.\n\n")
|
||||
_CYAN_("Note: Cotag has an extremely slow data rate - RF/" STR(LF_COTAG_CLOCK) " ")
|
||||
_CYAN_("-- capturing a full " STR(LF_COTAG_DATA_LEN) " bit card read requires a minimum of ")
|
||||
@@ -477,7 +477,7 @@ static int CmdCOTAGReader(const char *Cmd) {
|
||||
int16_t divisor = arg_get_int_def(ctx, 4, -1);
|
||||
CLIParserFree(ctx);
|
||||
|
||||
bool realtime = (samples > 40000);
|
||||
bool realtime = (samples >= g_pm3_capabilities.bigbuf_size);
|
||||
|
||||
if (divisor > -1 && (divisor < 19 || divisor > 255)) {
|
||||
PrintAndLogEx(ERR, "divisor must be between 19 and 255");
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "preferences.h"
|
||||
#include "cliparser.h"
|
||||
#include "cmdmqtt.h"
|
||||
#include "graph.h" // MAX_GRAPH_TRACE_LEN
|
||||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
@@ -175,7 +176,7 @@ static int CmdAuto(const char *Cmd) {
|
||||
|
||||
CmdPlot("");
|
||||
|
||||
lf_read(false, 40000);
|
||||
lf_read(false, MIN(g_pm3_capabilities.bigbuf_size - 1, MAX_GRAPH_TRACE_LEN));
|
||||
|
||||
char *fname = calloc(100, sizeof(uint8_t));
|
||||
if (fname == NULL) {
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "common.h"
|
||||
#include "graph.h" // MAX_GRAPH_TRACE_LEN
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -28,7 +29,7 @@ extern "C" {
|
||||
|
||||
#define PM3_DSP_MAX_FFT 262144
|
||||
#define PM3_DSP_DC_GUARD 2
|
||||
#define PM3_DSP_MAX_RESAMPLE (40000 * 32)
|
||||
#define PM3_DSP_MAX_RESAMPLE (MAX_GRAPH_TRACE_LEN * 32)
|
||||
#define PM3_DSP_NYQUIST_CLK 2.5
|
||||
#define PM3_DSP_ENVELOPE_SMOOTH 8
|
||||
#define PM3_DSP_ENVELOPE_DEPTH 0.6
|
||||
|
||||
+1
-1
@@ -627,7 +627,7 @@ pm3 --> lf t55xx wipe
|
||||
## Data
|
||||
^[Top](#top)
|
||||
|
||||
Get raw samples [512-40000]
|
||||
Get raw samples, between 512 and Bigbuf_size
|
||||
```
|
||||
pm3 --> data samples -n <size>
|
||||
```
|
||||
|
||||
@@ -331,7 +331,7 @@ hw bwmwifi --stop
|
||||
|
||||
- Bulk transfers over BLE/WiFi (`lf read`, `mem dump`, trace download) are paced by
|
||||
the BWM flow control so they don't drop — expect them to be **slower than USB**.
|
||||
- COTAG / large realtime LF reads (**> 40000 samples**) use a separate streaming
|
||||
- COTAG / large realtime LF reads use a separate streaming
|
||||
path and are **not** covered by this flow control.
|
||||
- All BWM commands are **PM5-only** and require the firmware built with
|
||||
`PLATFORM_EXTRAS=BWM`.
|
||||
@@ -7,6 +7,13 @@
|
||||
#:import ScanScreen epassport.ui.scan.ScanScreen
|
||||
#:import BinButton epassport.ui.widgets.binbutton.BinButton
|
||||
|
||||
# Kivy's disabled button texture is pale at the edges and dark in the middle,
|
||||
# which stretches into three bands and leaves the label unreadable. Keep the
|
||||
# normal background and let the dimmed text carry the disabled state.
|
||||
<Button>:
|
||||
background_disabled_normal: "atlas://data/images/defaulttheme/button"
|
||||
disabled_color: 1, 1, 1, 0.45
|
||||
|
||||
<Root>:
|
||||
orientation: "vertical"
|
||||
canvas.before:
|
||||
|
||||
Reference in new issue
Block a user