]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhfmf.c
REN: renamed tnp3.lua to tnp3dump.lua since that name is more explainatory
[proxmark3-svn] / client / cmdhfmf.c
index 8a48c19c316719ae257f051763751623ca5d2fe9..35bf2a001dfb09189a028157ade2226d22fa69d8 100644 (file)
@@ -1419,7 +1419,7 @@ int CmdHF14AMfESet(const char *Cmd)
 int CmdHF14AMfELoad(const char *Cmd)\r
 {\r
        FILE * f;\r
-       char filename[20];\r
+       char filename[255];\r
        char *fnameptr = filename;\r
        char buf[64];\r
        uint8_t buf8[64];\r
@@ -1436,7 +1436,7 @@ int CmdHF14AMfELoad(const char *Cmd)
        }       \r
 \r
        len = strlen(Cmd);\r
-       if (len > 14) len = 14;\r
+       if (len > 250) len = 250;\r
 \r
        memcpy(filename, Cmd, len);\r
        fnameptr += len;\r
@@ -1494,7 +1494,7 @@ int CmdHF14AMfELoad(const char *Cmd)
 int CmdHF14AMfESave(const char *Cmd)\r
 {\r
        FILE * f;\r
-       char filename[20];\r
+       char filename[255];\r
        char * fnameptr = filename;\r
        uint8_t buf[64];\r
        int i, j, len;\r
@@ -1511,7 +1511,7 @@ int CmdHF14AMfESave(const char *Cmd)
        }       \r
 \r
        len = strlen(Cmd);\r
-       if (len > 14) len = 14;\r
+       if (len > 250) len = 250;\r
        \r
        if (len < 1) {\r
                // get filename\r
@@ -1592,16 +1592,38 @@ int CmdHF14AMfECFill(const char *Cmd)
 int CmdHF14AMfEKeyPrn(const char *Cmd)\r
 {\r
        int i;\r
+       uint8_t numSectors;\r
        uint8_t data[16];\r
        uint64_t keyA, keyB;\r
        \r
+       if (param_getchar(Cmd, 0) == 'h') {\r
+               PrintAndLog("It prints the keys loaded in the emulator memory");\r
+               PrintAndLog("Usage:  hf mf ekeyprn [card memory]");\r
+               PrintAndLog("  [card memory]: 0 = 320 bytes (Mifare Mini), 1 = 1K (default), 2 = 2K, 4 = 4K");\r
+               PrintAndLog("");\r
+               PrintAndLog(" sample: hf mf ekeyprn 1");\r
+               return 0;\r
+       }       \r
+\r
+       char cmdp = param_getchar(Cmd, 0);\r
+       \r
+       switch (cmdp) {\r
+               case '0' : numSectors = 5; break;\r
+               case '1' : \r
+               case '\0': numSectors = 16; break;\r
+               case '2' : numSectors = 32; break;\r
+               case '4' : numSectors = 40; break;\r
+               default:   numSectors = 16;\r
+       }               \r
+       \r
        PrintAndLog("|---|----------------|----------------|");\r
        PrintAndLog("|sec|key A           |key B           |");\r
        PrintAndLog("|---|----------------|----------------|");\r
-       for (i = 0; i < 40; i++) {\r
+       for (i = 0; i < numSectors; i++) {\r
                if (mfEmlGetMem(data, FirstBlockOfSector(i) + NumBlocksPerSector(i) - 1, 1)) {\r
                        PrintAndLog("error get block %d", FirstBlockOfSector(i) + NumBlocksPerSector(i) - 1);\r
                        break;\r
+                       break;\r
                }\r
                keyA = bytes_to_num(data, 6);\r
                keyB = bytes_to_num(data + 10, 6);\r
@@ -1687,7 +1709,7 @@ int CmdHF14AMfCSetBlk(const char *Cmd)
 int CmdHF14AMfCLoad(const char *Cmd)\r
 {\r
        FILE * f;\r
-       char filename[20];\r
+       char filename[255];\r
        char * fnameptr = filename;\r
        char buf[64];\r
        uint8_t buf8[64];\r
@@ -1728,7 +1750,7 @@ int CmdHF14AMfCLoad(const char *Cmd)
                return 0;\r
        } else {\r
                len = strlen(Cmd);\r
-               if (len > 14) len = 14;\r
+               if (len > 250) len = 250;\r
 \r
                memcpy(filename, Cmd, len);\r
                fnameptr += len;\r
@@ -1851,7 +1873,7 @@ int CmdHF14AMfCGetSc(const char *Cmd) {
 int CmdHF14AMfCSave(const char *Cmd) {\r
 \r
        FILE * f;\r
-       char filename[20];\r
+       char filename[255];\r
        char * fnameptr = filename;\r
        uint8_t fillFromEmulator = 0;\r
        uint8_t buf[64];\r
@@ -1893,7 +1915,7 @@ int CmdHF14AMfCSave(const char *Cmd) {
                return 0;\r
        } else {\r
                len = strlen(Cmd);\r
-               if (len > 14) len = 14;\r
+               if (len > 250) len = 250;\r
        \r
                if (len < 1) {\r
                        // get filename\r
Impressum, Datenschutz