mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
textual
This commit is contained in:
parent
cabe121ca8
commit
8e819f1b26
1 changed files with 21 additions and 17 deletions
|
@ -58,9 +58,9 @@ static char *getCardSizeStr(uint8_t fsize) {
|
||||||
|
|
||||||
// is LSB set?
|
// is LSB set?
|
||||||
if (fsize & 1)
|
if (fsize & 1)
|
||||||
snprintf(retStr, sizeof(buf), "0x%02X (" _YELLOW_("%d - %d bytes") ")", fsize, usize, lsize);
|
snprintf(retStr, sizeof(buf), "0x%02X (" _GREEN_("%d - %d bytes") ")", fsize, usize, lsize);
|
||||||
else
|
else
|
||||||
snprintf(retStr, sizeof(buf), "0x%02X (" _YELLOW_("%d bytes") ")", fsize, lsize);
|
snprintf(retStr, sizeof(buf), "0x%02X (" _GREEN_("%d bytes") ")", fsize, lsize);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,18 +88,17 @@ static char *getVersionStr(uint8_t major, uint8_t minor) {
|
||||||
char *retStr = buf;
|
char *retStr = buf;
|
||||||
|
|
||||||
if (major == 0x00)
|
if (major == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("DESFire MF3ICD40") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("DESFire MF3ICD40") ")", major, minor);
|
||||||
else if (major == 0x01 && minor == 0x00)
|
else if (major == 0x01 && minor == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("DESFire EV1") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("DESFire EV1") ")", major, minor);
|
||||||
else if (major == 0x12 && minor == 0x00)
|
else if (major == 0x12 && minor == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("DESFire EV2") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("DESFire EV2") ")", major, minor);
|
||||||
else if (major == 0x33 && minor == 0x00)
|
else if (major == 0x33 && minor == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("DESFire EV3") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("DESFire EV3") ")", major, minor);
|
||||||
else if (major == 0x30 && minor == 0x00)
|
else if (major == 0x30 && minor == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("DESFire Light") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("DESFire Light") ")", major, minor);
|
||||||
|
|
||||||
else if (major == 0x11 && minor == 0x00)
|
else if (major == 0x11 && minor == 0x00)
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("Plus EV1") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _GREEN_("Plus EV1") ")", major, minor);
|
||||||
else
|
else
|
||||||
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("Unknown") ")", major, minor);
|
snprintf(retStr, sizeof(buf), "%x.%x (" _YELLOW_("Unknown") ")", major, minor);
|
||||||
return buf;
|
return buf;
|
||||||
|
@ -361,10 +360,8 @@ static int CmdHFMFPInfo(const char *Cmd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (card.sak == 0x20) {
|
if (card.sak == 0x20) {
|
||||||
PrintAndLogEx(INFO, " SAK: " _GREEN_("MIFARE Plus SL0/SL3") " or " _GREEN_("MIFARE DESFire"));
|
|
||||||
|
|
||||||
if (card.ats_len > 0) {
|
if (card.ats_len > 0) {
|
||||||
|
PrintAndLogEx(INFO, " SAK: " _GREEN_("MIFARE Plus SL0/SL3") " or " _GREEN_("MIFARE DESFire"));
|
||||||
SLmode = 3;
|
SLmode = 3;
|
||||||
// check SL0
|
// check SL0
|
||||||
uint8_t data[250] = {0};
|
uint8_t data[250] = {0};
|
||||||
|
@ -373,15 +370,22 @@ static int CmdHFMFPInfo(const char *Cmd) {
|
||||||
uint8_t cmd[3 + 16] = {0xa8, 0x90, 0x90, 0x00};
|
uint8_t cmd[3 + 16] = {0xa8, 0x90, 0x90, 0x00};
|
||||||
int res = ExchangeRAW14a(cmd, sizeof(cmd), true, false, data, sizeof(data), &datalen, false);
|
int res = ExchangeRAW14a(cmd, sizeof(cmd), true, false, data, sizeof(data), &datalen, false);
|
||||||
|
|
||||||
// DESFire answers 0x1C
|
// DESFire answers 0x1C or 67 00
|
||||||
// Plus answers 0x0B, 0x09
|
// Plus answers 0x0B, 0x09
|
||||||
PrintAndLogEx(INFO, "ICEE: %s", sprint_hex(data, datalen));
|
if ( data[0] != 0x0b && data[0] != 0x09 && data[0] != 0x1C && data[0] != 0x67) {
|
||||||
|
PrintAndLogEx(INFO, _RED_("Send copy to iceman of this command output!"));
|
||||||
if (memcmp(data, "\x67\x00", 2) == 0) {
|
PrintAndLogEx(INFO, "data: %s", sprint_hex(data, datalen));
|
||||||
PrintAndLogEx(INFO, "\tMost likely a MIFARE DESFire tag");
|
}
|
||||||
|
|
||||||
|
if ((memcmp(data, "\x67\x00", 2) == 0) ||
|
||||||
|
(memcmp(data, "\x1C\x83\x0C", 3) == 0)
|
||||||
|
) {
|
||||||
|
PrintAndLogEx(INFO, " result: " _RED_("MIFARE DESFire"));
|
||||||
PrintAndLogEx(HINT, "Hint: Try " _YELLOW_("`hf mfdes info`"));
|
PrintAndLogEx(HINT, "Hint: Try " _YELLOW_("`hf mfdes info`"));
|
||||||
DropField();
|
DropField();
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
|
} else {
|
||||||
|
PrintAndLogEx(INFO, " result: " _GREEN_("MIFARE Plus SL0/SL3"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!res && datalen > 1 && data[0] == 0x09) {
|
if (!res && datalen > 1 && data[0] == 0x09) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue