From 2d257167045dd68eae1cfc59cb3943470ef9cbe2 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sun, 16 Oct 2022 17:52:10 +0200 Subject: [PATCH] verify that there is a card on the proxmark before continuing --- client/src/cmdhfmf.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index 53d3afb1b..620eff3ea 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -5754,6 +5754,24 @@ int CmdHFMFNDEFFormat(const char *Cmd) { } + // Select card to get UID/UIDLEN/ATQA/SAK information + clearCommandBuffer(); + SendCommandMIX(CMD_HF_ISO14443A_READER, ISO14A_CONNECT, 0, 0, NULL, 0); + PacketResponseNG resp; + if (WaitForResponseTimeout(CMD_ACK, &resp, 1500) == false) { + PrintAndLogEx(WARNING, "iso14443a card select timeout"); + return PM3_ETIMEOUT; + } + + uint64_t select_status = resp.oldarg[0]; + if (select_status == 0) { + PrintAndLogEx(WARNING, "iso14443a card select failed"); + return select_status; + } + + DropField(); + + // init keys to default key uint8_t keyA[MIFARE_4K_MAXSECTOR][MFKEY_SIZE]; uint8_t keyB[MIFARE_4K_MAXSECTOR][MFKEY_SIZE]; @@ -5876,7 +5894,7 @@ skipfile: } PrintAndLogEx(NORMAL, ""); - + return PM3_SUCCESS; }