mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
change in detection
This commit is contained in:
parent
9b988b7216
commit
c00b1c0b73
1 changed files with 34 additions and 12 deletions
|
@ -1839,21 +1839,28 @@ static int detect_nxp_card_print(uint8_t sak, uint16_t atqa, uint64_t select_sta
|
||||||
PrintAndLogEx(SUCCESS, "Possible types:");
|
PrintAndLogEx(SUCCESS, "Possible types:");
|
||||||
|
|
||||||
if ((sak & 0x02) != 0x02) {
|
if ((sak & 0x02) != 0x02) {
|
||||||
|
|
||||||
if ((sak & 0x19) == 0x19) {
|
if ((sak & 0x19) == 0x19) {
|
||||||
printTag("MIFARE Classic 2K");
|
printTag("MIFARE Classic 2K");
|
||||||
type |= MTCLASSIC;
|
type |= MTCLASSIC;
|
||||||
} else if ((sak & 0x40) == 0x40) {
|
|
||||||
if ((atqa & 0x0110) == 0x0110)
|
|
||||||
printTag("P2P Support / Proprietary");
|
|
||||||
else
|
|
||||||
printTag("P2P Support / Android");
|
|
||||||
|
|
||||||
|
} else if ((sak & 0x40) == 0x40) {
|
||||||
|
|
||||||
|
if ((atqa & 0x0110) == 0x0110) {
|
||||||
|
printTag("P2P Support / Proprietary");
|
||||||
|
} else {
|
||||||
|
printTag("P2P Support / Android");
|
||||||
|
}
|
||||||
type |= MTISO18092;
|
type |= MTISO18092;
|
||||||
|
|
||||||
} else if ((sak & 0x38) == 0x38) {
|
} else if ((sak & 0x38) == 0x38) {
|
||||||
printTag("SmartMX with MIFARE Classic 4K");
|
printTag("SmartMX with MIFARE Classic 4K");
|
||||||
type |= MTCLASSIC;
|
type |= MTCLASSIC;
|
||||||
|
|
||||||
} else if ((sak & 0x18) == 0x18) {
|
} else if ((sak & 0x18) == 0x18) {
|
||||||
|
|
||||||
if (select_status == 1) {
|
if (select_status == 1) {
|
||||||
|
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
printTag("MIFARE Plus EV1 4K CL2 in SL1");
|
printTag("MIFARE Plus EV1 4K CL2 in SL1");
|
||||||
printTag("MIFARE Plus S 4K CL2 in SL1");
|
printTag("MIFARE Plus S 4K CL2 in SL1");
|
||||||
|
@ -1863,32 +1870,36 @@ static int detect_nxp_card_print(uint8_t sak, uint16_t atqa, uint64_t select_sta
|
||||||
printTag("MIFARE Plus S 4K in SL1");
|
printTag("MIFARE Plus S 4K in SL1");
|
||||||
printTag("MIFARE Plus X 4K in SL1");
|
printTag("MIFARE Plus X 4K in SL1");
|
||||||
}
|
}
|
||||||
|
|
||||||
type |= MTPLUS;
|
type |= MTPLUS;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
printTag("MIFARE Classic 4K CL2");
|
printTag("MIFARE Classic 4K CL2");
|
||||||
} else {
|
} else {
|
||||||
printTag("MIFARE Classic 4K");
|
printTag("MIFARE Classic 4K");
|
||||||
}
|
}
|
||||||
|
|
||||||
type |= MTCLASSIC;
|
type |= MTCLASSIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ((sak & 0x09) == 0x09) {
|
} else if ((sak & 0x09) == 0x09) {
|
||||||
|
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
printTag("MIFARE Mini 0.3K CL2");
|
printTag("MIFARE Mini 0.3K CL2");
|
||||||
} else {
|
} else {
|
||||||
printTag("MIFARE Mini 0.3K");
|
printTag("MIFARE Mini 0.3K");
|
||||||
}
|
}
|
||||||
|
|
||||||
type |= MTMINI;
|
type |= MTMINI;
|
||||||
|
|
||||||
} else if ((sak & 0x28) == 0x28) {
|
} else if ((sak & 0x28) == 0x28) {
|
||||||
printTag("SmartMX with MIFARE Classic 1K");
|
printTag("SmartMX with MIFARE Classic 1K");
|
||||||
printTag("FM1208-10 with MIFARE Classic 1K");
|
printTag("FM1208-10 with MIFARE Classic 1K");
|
||||||
printTag("FM1216-137 with MIFARE Classic 1K");
|
printTag("FM1216-137 with MIFARE Classic 1K");
|
||||||
type |= MTCLASSIC;
|
type |= MTCLASSIC;
|
||||||
} else if ((sak & 0x08) == 0x08) {
|
} else if ((sak & 0x08) == 0x08) {
|
||||||
|
|
||||||
if (select_status == 1) {
|
if (select_status == 1) {
|
||||||
|
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
printTag("MIFARE Plus EV1 2K CL2 in SL1");
|
printTag("MIFARE Plus EV1 2K CL2 in SL1");
|
||||||
printTag("MIFARE Plus S 2K CL2 in SL1");
|
printTag("MIFARE Plus S 2K CL2 in SL1");
|
||||||
|
@ -1900,17 +1911,17 @@ static int detect_nxp_card_print(uint8_t sak, uint16_t atqa, uint64_t select_sta
|
||||||
printTag("MIFARE Plus X 2K in SL1");
|
printTag("MIFARE Plus X 2K in SL1");
|
||||||
printTag("MIFARE Plus SE 1K");
|
printTag("MIFARE Plus SE 1K");
|
||||||
}
|
}
|
||||||
|
|
||||||
type |= MTPLUS;
|
type |= MTPLUS;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
printTag("MIFARE Classic 1K CL2");
|
printTag("MIFARE Classic 1K CL2");
|
||||||
} else {
|
} else {
|
||||||
printTag("MIFARE Classic 1K");
|
printTag("MIFARE Classic 1K");
|
||||||
}
|
}
|
||||||
|
|
||||||
type |= MTCLASSIC;
|
type |= MTCLASSIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ((sak & 0x11) == 0x11) {
|
} else if ((sak & 0x11) == 0x11) {
|
||||||
printTag("MIFARE Plus 4K in SL2");
|
printTag("MIFARE Plus 4K in SL2");
|
||||||
type |= MTPLUS;
|
type |= MTPLUS;
|
||||||
|
@ -1925,8 +1936,11 @@ static int detect_nxp_card_print(uint8_t sak, uint16_t atqa, uint64_t select_sta
|
||||||
printTag("MIFARE DESFire EV1 CL1");
|
printTag("MIFARE DESFire EV1 CL1");
|
||||||
type |= MTDESFIRE;
|
type |= MTDESFIRE;
|
||||||
} else if ((sak & 0x20) == 0x20) {
|
} else if ((sak & 0x20) == 0x20) {
|
||||||
|
|
||||||
if (select_status == 1) {
|
if (select_status == 1) {
|
||||||
|
|
||||||
if ((atqa & 0x0040) == 0x0040) {
|
if ((atqa & 0x0040) == 0x0040) {
|
||||||
|
|
||||||
if ((atqa & 0x0300) == 0x0300) {
|
if ((atqa & 0x0300) == 0x0300) {
|
||||||
printTag("MIFARE DESFire CL2");
|
printTag("MIFARE DESFire CL2");
|
||||||
printTag("MIFARE DESFire EV1 256B/2K/4K/8K CL2");
|
printTag("MIFARE DESFire EV1 256B/2K/4K/8K CL2");
|
||||||
|
@ -1944,9 +1958,13 @@ static int detect_nxp_card_print(uint8_t sak, uint16_t atqa, uint64_t select_sta
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if ((atqa & 0x0001) == 0x0001) {
|
if (
|
||||||
|
((atqa & 0x0001) == 0x0001) ||
|
||||||
|
((atqa & 0x0004) == 0x0004)
|
||||||
|
) {
|
||||||
printTag("HID SEOS (smartmx / javacard)");
|
printTag("HID SEOS (smartmx / javacard)");
|
||||||
type |= HID_SEOS;
|
type |= HID_SEOS;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printTag("MIFARE Plus EV1 2K/4K in SL3");
|
printTag("MIFARE Plus EV1 2K/4K in SL3");
|
||||||
printTag("MIFARE Plus S 2K/4K in SL3");
|
printTag("MIFARE Plus S 2K/4K in SL3");
|
||||||
|
@ -2365,7 +2383,11 @@ int infoHF14A(bool verbose, bool do_nack_test, bool do_aid_search) {
|
||||||
bad_ats = true;
|
bad_ats = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (card.ats_len == 7 && memcmp(card.ats, "\x05\x78\x77\x80\x02\x9C\x3A", 7) == 0) {
|
if (
|
||||||
|
(card.ats_len == 7 && memcmp(card.ats, "\x05\x78\x77\x80\x02\x9C\x3A", 7) == 0) ||
|
||||||
|
(card.ats_len == 7 && memcmp(card.ats, "\x05\x78\x77\x94\x02\x9C\x3A", 7) == 0)
|
||||||
|
)
|
||||||
|
{
|
||||||
isSEOS = true;
|
isSEOS = true;
|
||||||
isNTAG424 = false;
|
isNTAG424 = false;
|
||||||
isMifareDESFire = false;
|
isMifareDESFire = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue