From cfc72fb5f113bd2f5e20dbe334a0685027b95e38 Mon Sep 17 00:00:00 2001 From: Nat McHugh Date: Sun, 27 Nov 2022 14:55:12 +0000 Subject: [PATCH 1/2] Fix the dump command hitag2 --- client/src/cmdlfhitag.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/client/src/cmdlfhitag.c b/client/src/cmdlfhitag.c index 44e06f68d..ba7b72195 100644 --- a/client/src/cmdlfhitag.c +++ b/client/src/cmdlfhitag.c @@ -844,15 +844,40 @@ static int CmdLFHitag2Dump(const char *Cmd) { return PM3_EINVARG; } - PrintAndLogEx(SUCCESS, "Dumping tag memory..."); + hitag_function htf; + hitag_data htd; + memset(&htd, 0, sizeof(htd)); + if (keylen == 6) { + htf = RHT2F_CRYPTO; + memcpy(htd.crypto.key, key, sizeof(htd.crypto.key)); + PrintAndLogEx(INFO, "Authenticating in crypto mode"); + } else { + htf = RHT2F_PASSWORD; + memcpy(htd.pwd.password, key, sizeof(htd.pwd.password)); + PrintAndLogEx(INFO, "Authenticating in password mode"); + } + + uint16_t cmd = CMD_LF_HITAG_READER; clearCommandBuffer(); - //SendCommandNG(CMD_LF_HITAG_DUMP, &htd, sizeof(htd)); + SendCommandMIX(cmd, htf, 0, 0, &htd, sizeof(htd)); PacketResponseNG resp; + + if (WaitForResponseTimeout(CMD_ACK, &resp, 2000) == false) { + PrintAndLogEx(WARNING, "timeout while waiting for reply."); + return PM3_ETIMEOUT; + } + if (resp.oldarg[0] == false) { + PrintAndLogEx(DEBUG, "DEBUG: Error - hitag failed"); + return PM3_ESOFT; + } uint8_t *data = resp.data.asBytes; + if (data == NULL) return PM3_ESOFT; + PrintAndLogEx(SUCCESS, "Dumping tag memory..."); + if (fnlen < 1) { char *fptr = filename; fptr += snprintf(filename, sizeof(filename), "lf-hitag-"); From 3326a58c0d968cedd91bc626def19f6b4cd1b109 Mon Sep 17 00:00:00 2001 From: Nathaniel McHugh Date: Wed, 30 Nov 2022 16:42:00 +0000 Subject: [PATCH 2/2] Update CHANGELOG.md Signed-off-by: Nathaniel McHugh --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05bf94a2d..cab2e0dc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac - Fixed `trace list -t mf` - now also finds UID if anticollision is partial captured, to be used for mfkey (@iceman1001) - Added `hf mf gload, gsave, ggetblk, gsetblk` for Gen4 GTU in mifare classic mode (@DidierA) - Fixed SPI flash overflow when loading dictionnaries into flash. Breaking change: added 1 more sector for Mifare - dictionnaries should be loaded again (@jmichelp) + - Fixed `lf hitag dump` - Should now work as described in the command help (@natmchugh) ## [Radium.4.15864][2022-10-29] - Changed `lf indala sim` - now accepts fc / cn (@iceman1001)