From 2dea3684ae0be6c4afdacb33f1da7a0818593a03 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Tue, 30 Apr 2019 14:19:26 +0200 Subject: [PATCH] fix: 'hf iclass eload' - enable NG (Thanks @doegox) chg: 'hf iclass chk' - now uses fast push mode --- client/cmdhficlass.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/cmdhficlass.c b/client/cmdhficlass.c index 014e6cc9d..8326834a0 100644 --- a/client/cmdhficlass.c +++ b/client/cmdhficlass.c @@ -588,7 +588,7 @@ static int CmdHFiClassELoad(const char *Cmd) { } // fast push mode - conn.block_after_ACK = false; + conn.block_after_ACK = true; //Send to device uint32_t bytes_sent = 0; @@ -1947,6 +1947,9 @@ static int CmdHFiClassCheckKeys(const char *Cmd) { uint32_t chunksize = keycnt > (USB_CMD_DATA_SIZE / 4) ? (USB_CMD_DATA_SIZE / 4) : keycnt; bool lastChunk = false; + // fast push mode + conn.block_after_ACK = true; + // main keychunk loop for (uint32_t i = 0; i < keycnt; i += chunksize) { @@ -2032,6 +2035,11 @@ out: PrintAndLogEx(SUCCESS, "\nTime in iclass checkkeys: %.0f seconds\n", (float)t1 / 1000.0); + // Disable fast mode and send a dummy command to make it effective + conn.block_after_ACK = false; + SendCommandMIX(CMD_PING, 0, 0, 0, NULL, 0); + WaitForResponseTimeout(CMD_ACK, NULL, 1000); + DropField(); free(pre); free(keyBlock);