From 4161779083d31c4722bcfe38493a63467dd5d4af Mon Sep 17 00:00:00 2001 From: Eloff Date: Mon, 22 Apr 2019 23:20:35 +0300 Subject: [PATCH] loops for counters output --- client/cmdhfmfu.c | 10 ++++------ client/loclass/fileutils.c | 15 ++++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/client/cmdhfmfu.c b/client/cmdhfmfu.c index 47fb487f9..5ba989584 100644 --- a/client/cmdhfmfu.c +++ b/client/cmdhfmfu.c @@ -1622,12 +1622,10 @@ void printMFUdumpEx(mfu_dump_t *card, uint16_t pages, uint8_t startpage) { PrintAndLogEx(NORMAL, "TBD | %-24s| %s", sprint_hex(card->tbo1, sizeof(card->tbo1)), sprint_ascii(card->tbo1, sizeof(card->tbo1))); PrintAndLogEx(NORMAL, "Signature1| %s| %s", sprint_hex(card->signature, 16), sprint_ascii(card->signature, 16)); PrintAndLogEx(NORMAL, "Signature2| %s| %s", sprint_hex(card->signature + 16, 16), sprint_ascii(card->signature + 16, 16)); - PrintAndLogEx(NORMAL, "Counter0 | %-24s| %s", sprint_hex(card->counter_tearing[0], 3), sprint_ascii(card->counter_tearing[0], 3)); - PrintAndLogEx(NORMAL, "Tearing0 | %-24s| %s", sprint_hex(card->counter_tearing[0] + 3, 1), sprint_ascii(card->counter_tearing[0] + 3, 1)); - PrintAndLogEx(NORMAL, "Counter1 | %-24s| %s", sprint_hex(card->counter_tearing[1], 3), sprint_ascii(card->counter_tearing[1], 3)); - PrintAndLogEx(NORMAL, "Tearing1 | %-24s| %s", sprint_hex(card->counter_tearing[1] + 3, 1), sprint_ascii(card->counter_tearing[1] + 3, 1)); - PrintAndLogEx(NORMAL, "Counter2 | %-24s| %s", sprint_hex(card->counter_tearing[2], 3), sprint_ascii(card->counter_tearing[2], 3)); - PrintAndLogEx(NORMAL, "Tearing3 | %-24s| %s", sprint_hex(card->counter_tearing[2] + 3, 1), sprint_ascii(card->counter_tearing[2] + 3, 1)); + for (uint8_t i = 0; i < 3; i ++) { + PrintAndLogEx(NORMAL, "Counter%d | %-24s| %s", i, sprint_hex(card->counter_tearing[i], 3), sprint_ascii(card->counter_tearing[i], 3)); + PrintAndLogEx(NORMAL, "Tearing%d | %-24s| %s", i, sprint_hex(card->counter_tearing[i] + 3, 1), sprint_ascii(card->counter_tearing[i] + 3, 1)); + } PrintAndLogEx(NORMAL, "-------------------------------------------------------------"); PrintAndLogEx(NORMAL, "\nBlock# | Data |lck| Ascii"); PrintAndLogEx(NORMAL, "---------+-------------+---+------"); diff --git a/client/loclass/fileutils.c b/client/loclass/fileutils.c index 1aa11cfd6..4ce49f2b2 100644 --- a/client/loclass/fileutils.c +++ b/client/loclass/fileutils.c @@ -218,23 +218,24 @@ int saveFileJSON(const char *preferredName, const char *suffix, JSONFileType fty memcpy(uid, tmp->data, 3); memcpy(uid + 3, tmp->data + 4, 4); + char path[PATH_MAX_LENGTH] = {0}; + JsonSaveBufAsHexCompact(root, "$.Card.UID", uid, sizeof(uid)); JsonSaveBufAsHexCompact(root, "$.Card.Version", tmp->version, sizeof(tmp->version)); JsonSaveBufAsHexCompact(root, "$.Card.TBO_0", tmp->tbo, sizeof(tmp->tbo)); JsonSaveBufAsHexCompact(root, "$.Card.TBO_1", tmp->tbo1, sizeof(tmp->tbo1)); JsonSaveBufAsHexCompact(root, "$.Card.Signature", tmp->signature, sizeof(tmp->signature)); - JsonSaveBufAsHexCompact(root, "$.Card.Counter0", tmp->counter_tearing[0], 3); - JsonSaveBufAsHexCompact(root, "$.Card.Tearing0", tmp->counter_tearing[0] + 3, 1); - JsonSaveBufAsHexCompact(root, "$.Card.Counter1", tmp->counter_tearing[1], 3); - JsonSaveBufAsHexCompact(root, "$.Card.Tearing1", tmp->counter_tearing[1] + 3, 1); - JsonSaveBufAsHexCompact(root, "$.Card.Counter2", tmp->counter_tearing[2], 3); - JsonSaveBufAsHexCompact(root, "$.Card.Tearing2", tmp->counter_tearing[2] + 3, 1); + for (uint8_t i = 0; i < 3; i ++) { + sprintf(path, "$.Card.Counter%d", i); + JsonSaveBufAsHexCompact(root, path, tmp->counter_tearing[i], 3); + sprintf(path, "$.Card.Tearing%d", i); + JsonSaveBufAsHexCompact(root, path, tmp->counter_tearing[i] + 3, 1); + } // size of header 56b size_t len = (datalen - DUMP_PREFIX_LENGTH) / 4; for (size_t i = 0; i < len; i++) { - char path[PATH_MAX_LENGTH] = {0}; sprintf(path, "$.blocks.%zu", i); JsonSaveBufAsHexCompact(root, path, tmp->data + (i * 4), 4); }