This commit is contained in:
iceman1001 2023-07-24 21:04:21 +02:00
parent 1a788b1c14
commit 41ff9191d6
10 changed files with 37 additions and 39 deletions

View file

@ -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));