From 25f84bcb8e6171e0c71e72ec813890b0f7868c88 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Fri, 23 Jun 2023 17:21:47 +0200 Subject: [PATCH] fix 14b detection in hf search --- client/src/cmdhf14b.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/client/src/cmdhf14b.c b/client/src/cmdhf14b.c index d0083fbb5..77378fda2 100644 --- a/client/src/cmdhf14b.c +++ b/client/src/cmdhf14b.c @@ -2229,33 +2229,34 @@ int infoHF14B(bool verbose, bool do_aid_search) { // get and print general info about all known 14b chips int readHF14B(bool loop, bool verbose) { + bool found = false; do { // try std 14b (atqb) - if (HF14B_std_reader(verbose)) - if (loop) - continue; + found = HF14B_std_reader(verbose); + if (found && loop) + continue; // try ST Microelectronics 14b - if (HF14B_st_reader(verbose)) - if (loop) - continue; + found = HF14B_st_reader(verbose); + if (found && loop) + continue; // try ASK CT 14b - if (HF14B_ask_ct_reader(verbose)) - if (loop) - continue; + found = HF14B_ask_ct_reader(verbose); + if (found && loop) + continue; // try unknown 14b read commands (to be identified later) // could be read of calypso, CEPAS, moneo, or pico pass. - if (HF14B_other_reader(verbose)) - if (loop) - continue; - + found = HF14B_other_reader(verbose); + if (found && loop) + continue; } while (loop && kbd_enter_pressed() == false); - if (verbose) { + + if (verbose && found == false) { PrintAndLogEx(FAILED, "no ISO 14443-B tag found"); } - return PM3_EOPABORTED; + return (found) ? PM3_SUCCESS : PM3_EOPABORTED; }