]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhfmf.c
fixed iso14443b snoop, plus compiling issue of redefined parameter, please take care...
[proxmark3-svn] / client / cmdhfmf.c
index 064aaaa5a80f5c0e65d35200fda522bd5ad623f6..0c61542b962d566afb74c229b281c462237f24c0 100644 (file)
@@ -330,7 +330,6 @@ int CmdHF14AMfDump1k(const char *Cmd)
        \r
        for (i=0 ; i<16 ; i++) {\r
                for (j=0 ; j<4 ; j++) {\r
-                       \r
                        if (j == 3){\r
                                UsbCommand c = {CMD_MIFARE_READBL, {i*4 + j, 0, 0}};\r
                                memcpy(c.d.asBytes, keyA[i], 6);\r
@@ -358,6 +357,20 @@ int CmdHF14AMfDump1k(const char *Cmd)
                        if (resp != NULL) {\r
                                uint8_t isOK  = resp->arg[0] & 0xff;\r
                                uint8_t *data  = resp->d.asBytes;\r
+                               if (j == 3) {\r
+                                       data[0]  = (keyA[i][0]);\r
+                                       data[1]  = (keyA[i][1]);\r
+                                       data[2]  = (keyA[i][2]);\r
+                                       data[3]  = (keyA[i][3]);\r
+                                       data[4]  = (keyA[i][4]);\r
+                                       data[5]  = (keyA[i][5]);\r
+                                       data[10] = (keyB[i][0]);\r
+                                       data[11] = (keyB[i][1]);\r
+                                       data[12] = (keyB[i][2]);\r
+                                       data[13] = (keyB[i][3]);\r
+                                       data[14] = (keyB[i][4]);\r
+                                       data[15] = (keyB[i][5]);\r
+                               }\r
                                if (isOK) {\r
                                        fwrite ( data, 1, 16, fout );\r
                                }\r
@@ -390,6 +403,8 @@ int CmdHF14AMfRestore1k(const char *Cmd)
        FILE *fdump;\r
        FILE *fkeys;\r
        \r
+       char ch;\r
+       \r
        if ((fdump = fopen("dumpdata.bin","rb")) == NULL) {\r
                PrintAndLog("Could not find file dump.bin");\r
                return 1;\r
@@ -406,7 +421,7 @@ int CmdHF14AMfRestore1k(const char *Cmd)
                fread(keyB[i], 1, 6, fkeys);\r
        }\r
        \r
-       PrintAndLog("going...");\r
+       PrintAndLog("Restoring dumpdata.bin to card");\r
 \r
        for (i=0 ; i<16 ; i++) {\r
                for( j=0 ; j<4 ; j++) {\r
@@ -430,7 +445,13 @@ int CmdHF14AMfRestore1k(const char *Cmd)
                                bldata[15] = (keyB[i][5]);\r
                        }               \r
                        \r
-                       PrintAndLog("writing to block %2d: %s confirm?", i*4+j, sprint_hex(bldata, 16));\r
+                       PrintAndLog("Writing to block %2d: %s Confirm? [Y,N]", i*4+j, sprint_hex(bldata, 16));\r
+                       \r
+                       scanf("%c",&ch);\r
+                       if ((ch != 'y') || (ch != 'Y')){\r
+                               PrintAndLog("Aborting !");\r
+                               return 1;\r
+                       }\r
                        \r
                        memcpy(c.d.asBytes + 10, bldata, 16);\r
                        SendCommand(&c);\r
Impressum, Datenschutz