mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
Merge pull request #3279 from gentilkiwi/master
ICODE 3 & ICODE DNA detection in `hf 15 info` command
This commit is contained in:
+26
-5
@@ -143,6 +143,8 @@ static const productName_t uidmapping[] = {
|
||||
{ 0xE004010000000000LL, 0xFFFFFF1800000000LL, "NXP (Philips); IC SL2 ICS20/ICS21 " AEND "( " _CYAN_("SLI") " )" },
|
||||
{ 0xE004011000000000LL, 0xFFFFFF1800000000LL, "NXP (Philips); IC SL2 ICS2002/ICS2102 " AEND "( " _CYAN_("SLIX") " )" },
|
||||
{ 0xE004010800000000LL, 0xFFFFFF1800000000LL, "NXP (Philips); IC SL2 ICS2602 " AEND "( " _CYAN_("SLIX2") " )" },
|
||||
{ 0xE004011800000000LL, 0xFFFFFF1800000000LL, "NXP (Philips); ICODE DNA"},
|
||||
{ 0xE004012000000000LL, 0xFFFFFF7800000000LL, "NXP (Philips); ICODE 3"},
|
||||
{ 0xE004020000000000LL, 0xFFFFFF1000000000LL, "NXP (Philips); IC SL2 ICS53/ICS54 " AEND "( " _CYAN_("SLI-S") " )" },
|
||||
{ 0xE004021000000000LL, 0xFFFFFF1000000000LL, "NXP (Philips); ICS5302/ICS5402 " AEND "( " _CYAN_("SLIX-S") " )" },
|
||||
{ 0xE004030000000000LL, 0xFFFFFF1000000000LL, "NXP (Philips); IC SL2 ICS50/ICS51 " AEND "( " _CYAN_("SLI-L") " )" },
|
||||
@@ -1097,17 +1099,36 @@ static int CmdHF15Info(const char *Cmd) {
|
||||
|
||||
// Check if SLIX2 and attempt to get NXP System Information
|
||||
PrintAndLogEx(DEBUG, "Byte 6 :: %02x Byte 7 :: %02x Byte 8 :: %02x", d[6], d[7], d[8]);
|
||||
// SLIX2 uses xxx0 1xxx format on d[6] of UID
|
||||
uint8_t nxp_version = d[6] & 0x18;
|
||||
PrintAndLogEx(DEBUG, "NXP Version: %02x", nxp_version);
|
||||
|
||||
if (d[8] == 0x04) {
|
||||
// NXP
|
||||
|
||||
// from: SL2S6002_SDS
|
||||
// Bit 37 Bit 36 ICODE Type
|
||||
// -------------------------
|
||||
// 0 0 ICODE SLI
|
||||
// 1 0 ICODE SLIX
|
||||
// 0 1 ICODE SLIX2
|
||||
// 1 1 ICODE DNA
|
||||
|
||||
// SLIX2 uses xxx0 1xxx format on d[6] of UID
|
||||
uint8_t nxp_version = d[6] & 0x18;
|
||||
PrintAndLogEx(DEBUG, "NXP Version: %02x", nxp_version);
|
||||
|
||||
// from: SL2S3103
|
||||
// Bit 39 Bit 38 Bit 37 Bit 36 ICODE Type
|
||||
// --------------------------------------
|
||||
// 0 1 0 0 ICODE 3
|
||||
// --> it can be mismached with a ICODE SLI, but lets assume Bit 39 & Bit 38 at 0 when ICODE SLI*/DNA...
|
||||
|
||||
if (d[7] == 0x01 && nxp_version == 0x08) {
|
||||
PrintAndLogEx(DEBUG, "SLIX2 Detected, getting NXP System Info");
|
||||
return NxpSysInfo(uid);
|
||||
} else if (d[7] == 0x01 && nxp_version == 0x18) { // If it is an NTAG 5
|
||||
PrintAndLogEx(DEBUG, "NTAG 5 Detected, getting NXP System Info");
|
||||
} else if (d[7] == 0x01 && nxp_version == 0x18) { // If it is an NTAG 5 / ICODE DNA
|
||||
PrintAndLogEx(DEBUG, "NTAG 5 / ICODE DNA Detected, getting NXP System Info");
|
||||
return NxpSysInfo(uid);
|
||||
} else if (d[7] == 0x01 && ((d[6] & 0x78) == 0x20)) { // If it is an NTAG ICODE 3
|
||||
PrintAndLogEx(DEBUG, "ICODE 3 Detected, getting NXP System Info");
|
||||
return NxpSysInfo(uid);
|
||||
} else if ((d[7] == 0x01 || d[7] == 0x02 || d[7] == 0x03)) { // If SLI, SLIX, SLIX-l, or SLIX-S check EAS status
|
||||
PrintAndLogEx(DEBUG, "SLI, SLIX, SLIX-L, or SLIX-S Detected checking EAS status");
|
||||
|
||||
@@ -131,7 +131,7 @@ const ecdsa_publickey_ng_t manufacturer_public_keys[] = {
|
||||
},
|
||||
|
||||
{
|
||||
PK_15, MBEDTLS_ECP_DP_SECP128R1, 33, "NXP ICODE DNA, ICODE SLIX2",
|
||||
PK_15, MBEDTLS_ECP_DP_SECP128R1, 33, "NXP ICODE DNA, ICODE 3, ICODE SLIX2",
|
||||
"048878A2A2D3EEC336B4F261A082BD71F9BE11C4E2E896648B32EFA59CEA6E59F0"
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user