X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/2115626711dd85185d075865c8fa3294f884e046..e4da8ed0bbcd6352a3aba257b084849443882e59:/client/cmdhfmf.c diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index 064aaaa5..1a29f871 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -259,15 +259,10 @@ int CmdHF14AMfDump1k(const char *Cmd) { int i, j; - uint8_t keyType = 0; - uint8_t c[3][4]; uint8_t keyA[16][6]; uint8_t keyB[16][6]; uint8_t rights[16][4]; - uint8_t isOK = 0; - uint8_t *data = NULL; - FILE *fin; FILE *fout; @@ -330,7 +325,6 @@ int CmdHF14AMfDump1k(const char *Cmd) for (i=0 ; i<16 ; i++) { for (j=0 ; j<4 ; j++) { - if (j == 3){ UsbCommand c = {CMD_MIFARE_READBL, {i*4 + j, 0, 0}}; memcpy(c.d.asBytes, keyA[i], 6); @@ -358,6 +352,20 @@ int CmdHF14AMfDump1k(const char *Cmd) if (resp != NULL) { uint8_t isOK = resp->arg[0] & 0xff; uint8_t *data = resp->d.asBytes; + if (j == 3) { + data[0] = (keyA[i][0]); + data[1] = (keyA[i][1]); + data[2] = (keyA[i][2]); + data[3] = (keyA[i][3]); + data[4] = (keyA[i][4]); + data[5] = (keyA[i][5]); + data[10] = (keyB[i][0]); + data[11] = (keyB[i][1]); + data[12] = (keyB[i][2]); + data[13] = (keyB[i][3]); + data[14] = (keyB[i][4]); + data[15] = (keyB[i][5]); + } if (isOK) { fwrite ( data, 1, 16, fout ); } @@ -406,7 +414,7 @@ int CmdHF14AMfRestore1k(const char *Cmd) fread(keyB[i], 1, 6, fkeys); } - PrintAndLog("going..."); + PrintAndLog("Restoring dumpdata.bin to card"); for (i=0 ; i<16 ; i++) { for( j=0 ; j<4 ; j++) { @@ -430,7 +438,17 @@ int CmdHF14AMfRestore1k(const char *Cmd) bldata[15] = (keyB[i][5]); } - PrintAndLog("writing to block %2d: %s confirm?", i*4+j, sprint_hex(bldata, 16)); + PrintAndLog("Writing to block %2d: %s", i*4+j, sprint_hex(bldata, 16)); + + /* + PrintAndLog("Writing to block %2d: %s Confirm? [Y,N]", i*4+j, sprint_hex(bldata, 16)); + + scanf("%c",&ch); + if ((ch != 'y') && (ch != 'Y')){ + PrintAndLog("Aborting !"); + return 1; + } + */ memcpy(c.d.asBytes + 10, bldata, 16); SendCommand(&c);