From 125548a44ca368c57669db80f4e7a686fc734827 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Tue, 13 Oct 2020 12:08:34 +0200 Subject: [PATCH] hf mf rdsc - use fcts instead --- client/src/cmdhfmf.c | 138 ++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 68 deletions(-) diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index c723ea6aa..599884120 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -627,6 +627,76 @@ static void decode_print_st(uint16_t blockno, uint8_t *data) { } } + +static uint16_t NumOfBlocks(char card) { + switch (card) { + case '0' : + return MIFARE_MINI_MAXBLOCK; + case '1' : + return MIFARE_1K_MAXBLOCK; + case '2' : + return MIFARE_2K_MAXBLOCK; + case '4' : + return MIFARE_4K_MAXBLOCK; + default : + return 0; + } +} + +static uint8_t NumOfSectors(char card) { + switch (card) { + case '0' : + return MIFARE_MINI_MAXSECTOR; + case '1' : + return MIFARE_1K_MAXSECTOR; + case '2' : + return MIFARE_2K_MAXSECTOR; + case '4' : + return MIFARE_4K_MAXSECTOR; + default : + return 0; + } +} + +static uint8_t FirstBlockOfSector(uint8_t sectorNo) { + if (sectorNo < 32) { + return sectorNo * 4; + } else { + return 32 * 4 + (sectorNo - 32) * 16; + } +} + +static uint8_t NumBlocksPerSector(uint8_t sectorNo) { + if (sectorNo < 32) { + return 4; + } else { + return 16; + } +} + +static uint8_t GetSectorFromBlockNo(uint8_t blockNo) { + if (blockNo < 128) + return blockNo / 4; + else + return 32 + ((128 - blockNo) / 16); +} + +static char GetFormatFromSector(uint8_t sectorNo) { + switch (sectorNo) { + case MIFARE_MINI_MAXSECTOR: + return '0'; + case MIFARE_1K_MAXSECTOR: + return '1'; + case MIFARE_2K_MAXSECTOR: + return '2'; + case MIFARE_4K_MAXSECTOR: + return '4'; + default : + return ' '; + } +} + + static int CmdHF14AMfDarkside(const char *Cmd) { uint8_t blockno = 0, key_type = MIFARE_AUTH_KEYA; uint64_t key = 0; @@ -840,74 +910,6 @@ static int CmdHF14AMfRdSc(const char *Cmd) { return PM3_SUCCESS; } -static uint16_t NumOfBlocks(char card) { - switch (card) { - case '0' : - return MIFARE_MINI_MAXBLOCK; - case '1' : - return MIFARE_1K_MAXBLOCK; - case '2' : - return MIFARE_2K_MAXBLOCK; - case '4' : - return MIFARE_4K_MAXBLOCK; - default : - return 0; - } -} - -static uint8_t NumOfSectors(char card) { - switch (card) { - case '0' : - return MIFARE_MINI_MAXSECTOR; - case '1' : - return MIFARE_1K_MAXSECTOR; - case '2' : - return MIFARE_2K_MAXSECTOR; - case '4' : - return MIFARE_4K_MAXSECTOR; - default : - return 0; - } -} - -static uint8_t FirstBlockOfSector(uint8_t sectorNo) { - if (sectorNo < 32) { - return sectorNo * 4; - } else { - return 32 * 4 + (sectorNo - 32) * 16; - } -} - -static uint8_t NumBlocksPerSector(uint8_t sectorNo) { - if (sectorNo < 32) { - return 4; - } else { - return 16; - } -} - -static uint8_t GetSectorFromBlockNo(uint8_t blockNo) { - if (blockNo < 128) - return blockNo / 4; - else - return 32 + ((128 - blockNo) / 16); -} - -static char GetFormatFromSector(uint8_t sectorNo) { - switch (sectorNo) { - case MIFARE_MINI_MAXSECTOR: - return '0'; - case MIFARE_1K_MAXSECTOR: - return '1'; - case MIFARE_2K_MAXSECTOR: - return '2'; - case MIFARE_4K_MAXSECTOR: - return '4'; - default : - return ' '; - } -} - static int FastDumpWithEcFill(uint8_t numsectors) { PacketResponseNG resp;