mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
Add partial byte annotation in Hitag traces
Example: [usb] pm3 --> trace load -f traces/lf_HitagS256_dump.trace [+] loaded 287 bytes from binary file traces/lf_HitagS256_dump.trace [+] Recorded Activity (TraceLen = 287 bytes) [?] try `trace list -1 -t ...` to view trace. Remember the `-1` param [usb] pm3 --> trace list -1 -t hitags -c [+] Recorded activity (trace len = 287 bytes) [=] start = start of start frame end = end of frame. src = source of transfer [=] Hitag1 / Hitag2 / HitagS - Timings in ETU (8us) Start | End | Src | Data (! denotes parity error) ------------+------------+-----+----------------------------------------- 0 | 0 | Rdr |18(5) 117 | 117 | Tag |0f(4) 2c ab cc b3 cf 32 bf [2f] 0 | 0 | Rdr |00(5) 21 a5 b4 73 [8c] 117 | 117 | Tag |0f(4) c9 00 00 aa [75] 0 | 0 | Rdr |0c(4) 00 [ab] 117 | 117 | Tag |0f(4) 21 a5 b4 73 [53] 0 | 0 | Rdr |0c(4) 01 [b6] 117 | 117 | Tag |0f(4) c9 00 00 aa [75] 0 | 0 | Rdr |0c(4) 02 [91] 117 | 117 | Tag |0f(4) 48 54 4f 4e [2c] 0 | 0 | Rdr |0c(4) 03 [8c] 117 | 117 | Tag |0f(4) 4d 49 4b 52 [1e] 0 | 0 | Rdr |0c(4) 04 [df] 117 | 117 | Tag |0f(4) 00 00 00 00 [a6] 0 | 0 | Rdr |0c(4) 05 [c2] 117 | 117 | Tag |0f(4) 00 00 00 00 [a6] 0 | 0 | Rdr |0c(4) 06 [e5] 117 | 117 | Tag |0f(4) 00 00 00 00 [a6] 0 | 0 | Rdr |0c(4) 07 [f8] 117 | 117 | Tag |0f(4) 57 5f 4f 4b [88] 0 | 0 | Rdr |0c(4) 08 [43]
This commit is contained in:
parent
e5c20fc850
commit
323f70ff7a
6 changed files with 57 additions and 23 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "string.h"
|
||||
#include "dbprint.h"
|
||||
#include "pm3_cmd.h"
|
||||
#include "util.h" // nbytes
|
||||
|
||||
extern uint32_t _stack_start[], __bss_end__[];
|
||||
|
||||
|
@ -289,6 +290,13 @@ bool LogTrace_ISO15693(const uint8_t *bytes, uint16_t len, uint32_t ts_start, ui
|
|||
return LogTrace(bytes, len, ts_start, ts_end, parity, reader2tag);
|
||||
}
|
||||
|
||||
// specific LogTrace function for bitstreams: the partial byte size is stored in first parity byte. E.g. bitstream "1100 00100010" -> partial byte: 4 bits
|
||||
bool RAMFUNC LogTraceBits(const uint8_t *btBytes, uint16_t bitLen, uint32_t timestamp_start, uint32_t timestamp_end, bool readerToTag) {
|
||||
uint8_t parity[(nbytes(bitLen) - 1) / 8 + 1];
|
||||
memset(parity, 0x00, sizeof(parity));
|
||||
parity[0] = ((bitLen - 1) % 8) + 1;
|
||||
return LogTrace(btBytes, nbytes(bitLen), timestamp_start, timestamp_end, parity, readerToTag);
|
||||
}
|
||||
|
||||
// Emulator memory
|
||||
uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue