From 989ef99e4a65424f77721540eb227cb8e86403dd Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Tue, 16 Jan 2024 16:23:20 +0100 Subject: [PATCH] added a command to clear trace. Moved picopass reader to above _other_ 14b checks to improve speeds. Might do a extensive param to search for those odd ones --- client/src/cmdhf14b.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/client/src/cmdhf14b.c b/client/src/cmdhf14b.c index 43fd62aee..9ad2e7c00 100644 --- a/client/src/cmdhf14b.c +++ b/client/src/cmdhf14b.c @@ -74,6 +74,17 @@ static int switch_off_field_14b(void) { return PM3_SUCCESS; } +static int clear_trace_14b(void) { + iso14b_raw_cmd_t packet = { + .flags = ISO14B_CLEARTRACE, + .timeout = 0, + .rawlen = 0, + }; + clearCommandBuffer(); + SendCommandNG(CMD_HF_ISO14443B_COMMAND, (uint8_t *)&packet, sizeof(iso14b_raw_cmd_t)); + return PM3_SUCCESS; +} + static void hf14b_aid_search(bool verbose) { json_t *root = AIDSearchInit(verbose); @@ -1454,6 +1465,8 @@ static int CmdHF14BReader(const char *Cmd) { PrintAndLogEx(INFO, "Press " _GREEN_("") " to exit"); } + clear_trace_14b(); + return readHF14B(cm, verbose); } @@ -2541,6 +2554,13 @@ int readHF14B(bool loop, bool verbose) { else if (found) return PM3_SUCCESS; + // Picopass + found |= HF14B_picopass_reader(verbose) ; + if (found && loop) + continue; + else if (found) + return PM3_SUCCESS; + // try ASK CT 14b found |= HF14B_ask_ct_reader(verbose); if (found && loop) @@ -2556,13 +2576,6 @@ int readHF14B(bool loop, bool verbose) { else if (found) return PM3_SUCCESS; - // Picopass - found |= HF14B_picopass_reader(verbose) ; - if (found && loop) - continue; - else if (found) - return PM3_SUCCESS; - } while (loop && kbd_enter_pressed() == false); if (verbose && found == false) {