mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-07-16 10:03:04 -07:00
text
This commit is contained in:
parent
1a788b1c14
commit
41ff9191d6
10 changed files with 37 additions and 39 deletions
|
@ -671,11 +671,9 @@ static int NxpTestEAS(uint8_t *uid) {
|
|||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||
|
||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
||||
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||
} else {
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
|
||||
|
||||
PrintAndLogEx(INFO, "");
|
||||
if (resp.length < 2) {
|
||||
PrintAndLogEx(INFO, " EAS (Electronic Article Surveillance) is not active");
|
||||
} else {
|
||||
|
@ -687,7 +685,6 @@ static int NxpTestEAS(uint8_t *uid) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -712,7 +709,7 @@ static int NxpCheckSig(uint8_t *uid) {
|
|||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||
|
||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
||||
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||
DropField();
|
||||
return PM3_ETIMEOUT;
|
||||
}
|
||||
|
@ -732,10 +729,9 @@ static int NxpCheckSig(uint8_t *uid) {
|
|||
}
|
||||
|
||||
uint8_t signature[32] = {0x00};
|
||||
memcpy(signature, recv + 1, 32);
|
||||
memcpy(signature, recv + 1, sizeof(signature));
|
||||
|
||||
nxp_15693_print_signature(uid, signature);
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -764,7 +760,7 @@ static int NxpSysInfo(uint8_t *uid) {
|
|||
clearCommandBuffer();
|
||||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
||||
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||
DropField();
|
||||
return PM3_ETIMEOUT;
|
||||
}
|
||||
|
@ -790,21 +786,29 @@ static int NxpSysInfo(uint8_t *uid) {
|
|||
bool support_signature = (recv[5] & 0x01);
|
||||
bool support_easmode = (recv[4] & 0x04);
|
||||
|
||||
PrintAndLogEx(INFO, "--------- " _CYAN_("NXP Sysinfo") " ---------");
|
||||
PrintAndLogEx(INFO, " raw : %s", sprint_hex(recv, 8));
|
||||
PrintAndLogEx(INFO, " Password protection configuration:");
|
||||
PrintAndLogEx(INFO, " * Page L read%s password protected", ((recv[2] & 0x01) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, " * Page L write%s password protected", ((recv[2] & 0x02) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, " * Page H read%s password protected", ((recv[2] & 0x10) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, " * Page H write%s password protected", ((recv[2] & 0x20) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, "");
|
||||
PrintAndLogEx(INFO, "--- " _CYAN_("NXP Sysinfo"));
|
||||
PrintAndLogEx(INFO, " raw... %s", sprint_hex(recv, 8));
|
||||
PrintAndLogEx(INFO, " " _CYAN_("Password protection configuration:"));
|
||||
PrintAndLogEx(INFO, " * Page L read%s password protected", ((recv[2] & 0x01) ? "" : _GREEN_(" not")));
|
||||
PrintAndLogEx(INFO, " * Page L write%s password protected", ((recv[2] & 0x02) ? "" : _GREEN_(" not")));
|
||||
PrintAndLogEx(INFO, " * Page H read%s password protected", ((recv[2] & 0x10) ? "" : _GREEN_(" not")));
|
||||
PrintAndLogEx(INFO, " * Page H write%s password protected", ((recv[2] & 0x20) ? "" : _GREEN_(" not")));
|
||||
|
||||
PrintAndLogEx(INFO, " Lock bits:");
|
||||
PrintAndLogEx(INFO, " * AFI%s locked", ((recv[3] & 0x01) ? "" : " not")); // AFI lock bit
|
||||
PrintAndLogEx(INFO, " * EAS%s locked", ((recv[3] & 0x02) ? "" : " not")); // EAS lock bit
|
||||
PrintAndLogEx(INFO, " * DSFID%s locked", ((recv[3] & 0x03) ? "" : " not")); // DSFID lock bit
|
||||
PrintAndLogEx(INFO, " * Password protection configuration%s locked", ((recv[3] & 0x04) ? "" : " not")); // Password protection pointer address and access conditions lock bit
|
||||
PrintAndLogEx(INFO, " " _CYAN_("Lock bits:"));
|
||||
// AFI lock bit
|
||||
PrintAndLogEx(INFO, " * AFI%s locked", ((recv[3] & 0x01) ? "" : _GREEN_(" not")));
|
||||
|
||||
PrintAndLogEx(INFO, " Features:");
|
||||
// EAS lock bit
|
||||
PrintAndLogEx(INFO, " * EAS%s locked", ((recv[3] & 0x02) ? "" : _GREEN_(" not")));
|
||||
|
||||
// DSFID lock bit
|
||||
PrintAndLogEx(INFO, " * DSFID%s locked", ((recv[3] & 0x03) ? "" : _GREEN_(" not")));
|
||||
|
||||
// Password protection pointer address and access conditions lock bit
|
||||
PrintAndLogEx(INFO, " * Password protection configuration%s locked", ((recv[3] & 0x04) ? "" : _GREEN_(" not")));
|
||||
|
||||
PrintAndLogEx(INFO, " " _CYAN_("Features:"));
|
||||
PrintAndLogEx(INFO, " * User memory password protection%s supported", ((recv[4] & 0x01) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, " * Counter feature%s supported", ((recv[4] & 0x02) ? "" : " not"));
|
||||
PrintAndLogEx(INFO, " * EAS ID%s supported by EAS ALARM command", support_easmode ? "" : " not");
|
||||
|
@ -827,6 +831,7 @@ static int NxpSysInfo(uint8_t *uid) {
|
|||
NxpCheckSig(uid);
|
||||
}
|
||||
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -925,7 +930,6 @@ static int CmdHF15Info(const char *Cmd) {
|
|||
memcpy(uid, data + 2, sizeof(uid));
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
||||
PrintAndLogEx(SUCCESS, " TYPE: " _YELLOW_("%s"), getTagInfo_15(data + 2));
|
||||
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%s"), iso15693_sprintUID(NULL, uid));
|
||||
PrintAndLogEx(SUCCESS, " SYSINFO: %s", sprint_hex(data, resp.length - 2));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue