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
|
@ -314,8 +314,8 @@ static void hitag2_handle_reader_command(uint8_t *rx, const size_t rxlen, uint8_
|
|||
break;
|
||||
}
|
||||
|
||||
// LogTrace(rx, nbytes(rxlen), 0, 0, NULL, false);
|
||||
// LogTrace(tx, nbytes(txlen), 0, 0, NULL, true);
|
||||
// LogTraceBits(rx, rxlen, 0, 0, false);
|
||||
// LogTraceBits(tx, txlen, 0, 0, true);
|
||||
|
||||
if (tag.crypto_active) {
|
||||
hitag2_cipher_transcrypt(&(tag.cs), tx, *txlen / 8, *txlen % 8);
|
||||
|
@ -1100,7 +1100,7 @@ void SniffHitag2(bool ledcontrol) {
|
|||
if (rxlen == 0)
|
||||
continue;
|
||||
|
||||
LogTrace(rx, nbytes(rxlen), 0, 0, NULL, false);
|
||||
LogTraceBits(rx, rxlen, 0, 0, false);
|
||||
total_count += nbytes(rxlen);
|
||||
} else {
|
||||
// decode reader comms
|
||||
|
@ -1108,7 +1108,7 @@ void SniffHitag2(bool ledcontrol) {
|
|||
total_count += rxlen;
|
||||
// Pack the response into a byte array
|
||||
|
||||
// LogTrace(rx, nbytes(rdr), 0, 0, NULL, true);
|
||||
// LogTraceBits(rx, rdr, 0, 0, true);
|
||||
// total_count += nbytes(rdr);
|
||||
}
|
||||
if (ledcontrol) LED_A_INV();
|
||||
|
@ -1265,7 +1265,7 @@ void SniffHitag2(bool ledcontrol) {
|
|||
// Check if frame was captured
|
||||
if (rxlen) {
|
||||
frame_count++;
|
||||
LogTrace(rx, nbytes(rxlen), response, 0, NULL, reader_frame);
|
||||
LogTraceBits(rx, rxlen, response, 0, reader_frame);
|
||||
|
||||
// Check if we recognize a valid authentication attempt
|
||||
if (nbytes(rxlen) == 8) {
|
||||
|
@ -1495,7 +1495,7 @@ void SimulateHitag2(bool ledcontrol) {
|
|||
// Check if frame was captured
|
||||
if (rxlen > 4) {
|
||||
|
||||
LogTrace(rx, nbytes(rxlen), response, response, NULL, true);
|
||||
LogTraceBits(rx, rxlen, response, response, true);
|
||||
|
||||
// Process the incoming frame (rx) and prepare the outgoing frame (tx)
|
||||
hitag2_handle_reader_command(rx, rxlen, tx, &txlen);
|
||||
|
@ -1514,7 +1514,7 @@ void SimulateHitag2(bool ledcontrol) {
|
|||
lf_manchester_send_bytes(tx, txlen, ledcontrol);
|
||||
|
||||
// Store the frame in the trace
|
||||
LogTrace(tx, nbytes(txlen), 0, 0, NULL, false);
|
||||
LogTraceBits(tx, txlen, 0, 0, false);
|
||||
}
|
||||
|
||||
// Reset the received frame and response timing info
|
||||
|
@ -1844,7 +1844,7 @@ void ReaderHitag(hitag_function htf, hitag_data *htd, bool ledcontrol) {
|
|||
// and to be able to overwrite the first samples with the trace (since they currently
|
||||
// still use the same memory space)
|
||||
if (txlen > 0) {
|
||||
LogTrace(tx, nbytes(txlen), command_start, command_start + command_duration, NULL, true);
|
||||
LogTraceBits(tx, txlen, command_start, command_start + command_duration, true);
|
||||
}
|
||||
|
||||
// Reset values for receiving frames
|
||||
|
@ -1904,7 +1904,7 @@ void ReaderHitag(hitag_function htf, hitag_data *htd, bool ledcontrol) {
|
|||
// Check if frame was captured and store it
|
||||
if (rxlen > 0) {
|
||||
|
||||
LogTrace(rx, nbytes(rxlen), response_start, response_start + response_duration, NULL, false);
|
||||
LogTraceBits(rx, rxlen, response_start, response_start + response_duration, false);
|
||||
|
||||
// TODO when using cumulative time for command_start, pm3 doesn't reply anymore, e.g. on lf hitag reader --23 -k 4F4E4D494B52
|
||||
// Use delta time?
|
||||
|
@ -2167,7 +2167,7 @@ void WriterHitag(hitag_function htf, hitag_data *htd, int page, bool ledcontrol)
|
|||
// and to be able to overwrite the first samples with the trace (since they currently
|
||||
// still use the same memory space)
|
||||
if (txlen > 0) {
|
||||
LogTrace(tx, nbytes(txlen), command_start, command_start + command_duration, NULL, true);
|
||||
LogTraceBits(tx, txlen, command_start, command_start + command_duration, true);
|
||||
}
|
||||
|
||||
// Reset values for receiving frames
|
||||
|
@ -2225,7 +2225,7 @@ void WriterHitag(hitag_function htf, hitag_data *htd, int page, bool ledcontrol)
|
|||
|
||||
// Check if frame was captured and store it
|
||||
if (rxlen > 0) {
|
||||
LogTrace(rx, nbytes(rxlen), response_start, response_start + response_duration, NULL, false);
|
||||
LogTraceBits(rx, rxlen, response_start, response_start + response_duration, false);
|
||||
command_start = 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue