This commit is contained in:
merlokk 2019-12-06 17:12:29 +02:00
commit 45926261db
3 changed files with 10 additions and 10 deletions

View file

@ -3691,7 +3691,7 @@ static int CmdHF14AMfCWipe(const char *cmd) {
CLIGetHexWithReturn(2, atqa, &atqaLen); CLIGetHexWithReturn(2, atqa, &atqaLen);
CLIGetHexWithReturn(3, sak, &sakLen); CLIGetHexWithReturn(3, sak, &sakLen);
CLIParserFree(); CLIParserFree();
if (uidLen && uidLen != 4) { if (uidLen && uidLen != 4) {
PrintAndLogEx(ERR, "UID length must be 4 bytes instead of: %d", uidLen); PrintAndLogEx(ERR, "UID length must be 4 bytes instead of: %d", uidLen);
return PM3_EINVARG; return PM3_EINVARG;
@ -3705,7 +3705,7 @@ static int CmdHF14AMfCWipe(const char *cmd) {
return PM3_EINVARG; return PM3_EINVARG;
} }
int res = mfCWipe((uidLen)? uid : NULL, (atqaLen) ? atqa : NULL, (sakLen) ? sak : NULL); int res = mfCWipe((uidLen) ? uid : NULL, (atqaLen) ? atqa : NULL, (sakLen) ? sak : NULL);
if (res) { if (res) {
PrintAndLogEx(ERR, "Can't wipe card. error=%d", res); PrintAndLogEx(ERR, "Can't wipe card. error=%d", res);
return PM3_ESOFT; return PM3_ESOFT;

View file

@ -616,9 +616,9 @@ int mfCSetUID(uint8_t *uid, uint8_t *atqa, uint8_t *sak, uint8_t *oldUID, uint8_
} }
int mfCWipe(uint8_t *uid, uint8_t *atqa, uint8_t *sak) { int mfCWipe(uint8_t *uid, uint8_t *atqa, uint8_t *sak) {
uint8_t block0[16] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xAF}; uint8_t block0[16] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xAF};
uint8_t blockD[16] = {0x00}; uint8_t blockD[16] = {0x00};
uint8_t blockK[16] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x77, 0x8F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t blockK[16] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x77, 0x8F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
uint8_t params = MAGIC_SINGLE; uint8_t params = MAGIC_SINGLE;
if (uid != NULL) { if (uid != NULL) {
@ -632,7 +632,7 @@ int mfCWipe(uint8_t *uid, uint8_t *atqa, uint8_t *sak) {
block0[6] = atqa[1]; block0[6] = atqa[1];
block0[7] = atqa[0]; block0[7] = atqa[0];
} }
int res; int res;
for (int blockNo = 0; blockNo < 4 * 16; blockNo++) { for (int blockNo = 0; blockNo < 4 * 16; blockNo++) {
for (int retry = 0; retry < 3; retry++) { for (int retry = 0; retry < 3; retry++) {
if (blockNo == 0) { if (blockNo == 0) {
@ -643,19 +643,19 @@ int mfCWipe(uint8_t *uid, uint8_t *atqa, uint8_t *sak) {
else else
res = mfCSetBlock(blockNo, blockD, NULL, params); res = mfCSetBlock(blockNo, blockD, NULL, params);
} }
if (res == PM3_SUCCESS) if (res == PM3_SUCCESS)
break; break;
PrintAndLogEx(WARNING, "Retry block[%d]...", blockNo); PrintAndLogEx(WARNING, "Retry block[%d]...", blockNo);
} }
if (res) { if (res) {
PrintAndLogEx(ERR, "Error setting block[%d]: %d", blockNo, res); PrintAndLogEx(ERR, "Error setting block[%d]: %d", blockNo, res);
return res; return res;
} }
} }
DropField(); DropField();
return PM3_SUCCESS; return PM3_SUCCESS;
} }

View file

@ -71,7 +71,7 @@
# #
# Thats it! Your S50 7byte UID card is wiped back. Now you can return back to Step 1 of this manual. # Thats it! Your S50 7byte UID card is wiped back. Now you can return back to Step 1 of this manual.
# #
# #