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
|
@ -861,7 +861,7 @@ static bool HF14B_Std_Info(bool verbose, bool do_aid_search) {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0: {
|
case 0: {
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "-------------------- " _CYAN_("Tag information") " --------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(SUCCESS, " UID : " _GREEN_("%s"), sprint_hex(card.uid, card.uidlen));
|
PrintAndLogEx(SUCCESS, " UID : " _GREEN_("%s"), sprint_hex(card.uid, card.uidlen));
|
||||||
PrintAndLogEx(SUCCESS, " ATQB : %s", sprint_hex(card.atqb, sizeof(card.atqb)));
|
PrintAndLogEx(SUCCESS, " ATQB : %s", sprint_hex(card.atqb, sizeof(card.atqb)));
|
||||||
PrintAndLogEx(SUCCESS, " CHIPID : %02X", card.chipid);
|
PrintAndLogEx(SUCCESS, " CHIPID : %02X", card.chipid);
|
||||||
|
|
|
@ -671,11 +671,9 @@ static int NxpTestEAS(uint8_t *uid) {
|
||||||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||||
|
|
||||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||||
} else {
|
} else {
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(INFO, "");
|
||||||
|
|
||||||
|
|
||||||
if (resp.length < 2) {
|
if (resp.length < 2) {
|
||||||
PrintAndLogEx(INFO, " EAS (Electronic Article Surveillance) is not active");
|
PrintAndLogEx(INFO, " EAS (Electronic Article Surveillance) is not active");
|
||||||
} else {
|
} else {
|
||||||
|
@ -687,7 +685,6 @@ static int NxpTestEAS(uint8_t *uid) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -712,7 +709,7 @@ static int NxpCheckSig(uint8_t *uid) {
|
||||||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||||
|
|
||||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||||
DropField();
|
DropField();
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -732,10 +729,9 @@ static int NxpCheckSig(uint8_t *uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t signature[32] = {0x00};
|
uint8_t signature[32] = {0x00};
|
||||||
memcpy(signature, recv + 1, 32);
|
memcpy(signature, recv + 1, sizeof(signature));
|
||||||
|
|
||||||
nxp_15693_print_signature(uid, signature);
|
nxp_15693_print_signature(uid, signature);
|
||||||
|
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -764,7 +760,7 @@ static int NxpSysInfo(uint8_t *uid) {
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
SendCommandMIX(CMD_HF_ISO15693_COMMAND, reqlen, fast, reply, req, reqlen);
|
||||||
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
if (WaitForResponseTimeout(CMD_HF_ISO15693_COMMAND, &resp, 2000) == false) {
|
||||||
PrintAndLogEx(WARNING, "iso15693 timeout");
|
PrintAndLogEx(DEBUG, "iso15693 timeout");
|
||||||
DropField();
|
DropField();
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -790,21 +786,29 @@ static int NxpSysInfo(uint8_t *uid) {
|
||||||
bool support_signature = (recv[5] & 0x01);
|
bool support_signature = (recv[5] & 0x01);
|
||||||
bool support_easmode = (recv[4] & 0x04);
|
bool support_easmode = (recv[4] & 0x04);
|
||||||
|
|
||||||
PrintAndLogEx(INFO, "--------- " _CYAN_("NXP Sysinfo") " ---------");
|
PrintAndLogEx(INFO, "");
|
||||||
PrintAndLogEx(INFO, " raw : %s", sprint_hex(recv, 8));
|
PrintAndLogEx(INFO, "--- " _CYAN_("NXP Sysinfo"));
|
||||||
PrintAndLogEx(INFO, " Password protection configuration:");
|
PrintAndLogEx(INFO, " raw... %s", sprint_hex(recv, 8));
|
||||||
PrintAndLogEx(INFO, " * Page L read%s password protected", ((recv[2] & 0x01) ? "" : " not"));
|
PrintAndLogEx(INFO, " " _CYAN_("Password protection configuration:"));
|
||||||
PrintAndLogEx(INFO, " * Page L write%s password protected", ((recv[2] & 0x02) ? "" : " not"));
|
PrintAndLogEx(INFO, " * Page L read%s password protected", ((recv[2] & 0x01) ? "" : _GREEN_(" not")));
|
||||||
PrintAndLogEx(INFO, " * Page H read%s password protected", ((recv[2] & 0x10) ? "" : " not"));
|
PrintAndLogEx(INFO, " * Page L write%s password protected", ((recv[2] & 0x02) ? "" : _GREEN_(" not")));
|
||||||
PrintAndLogEx(INFO, " * Page H write%s password protected", ((recv[2] & 0x20) ? "" : " 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, " " _CYAN_("Lock bits:"));
|
||||||
PrintAndLogEx(INFO, " * AFI%s locked", ((recv[3] & 0x01) ? "" : " not")); // AFI lock bit
|
// AFI lock bit
|
||||||
PrintAndLogEx(INFO, " * EAS%s locked", ((recv[3] & 0x02) ? "" : " not")); // EAS lock bit
|
PrintAndLogEx(INFO, " * AFI%s locked", ((recv[3] & 0x01) ? "" : _GREEN_(" not")));
|
||||||
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, " 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, " * User memory password protection%s supported", ((recv[4] & 0x01) ? "" : " not"));
|
||||||
PrintAndLogEx(INFO, " * Counter feature%s supported", ((recv[4] & 0x02) ? "" : " not"));
|
PrintAndLogEx(INFO, " * Counter feature%s supported", ((recv[4] & 0x02) ? "" : " not"));
|
||||||
PrintAndLogEx(INFO, " * EAS ID%s supported by EAS ALARM command", support_easmode ? "" : " 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);
|
NxpCheckSig(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PrintAndLogEx(NORMAL, "");
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -925,7 +930,6 @@ static int CmdHF15Info(const char *Cmd) {
|
||||||
memcpy(uid, data + 2, sizeof(uid));
|
memcpy(uid, data + 2, sizeof(uid));
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
|
||||||
PrintAndLogEx(SUCCESS, " TYPE: " _YELLOW_("%s"), getTagInfo_15(data + 2));
|
PrintAndLogEx(SUCCESS, " TYPE: " _YELLOW_("%s"), getTagInfo_15(data + 2));
|
||||||
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%s"), iso15693_sprintUID(NULL, uid));
|
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%s"), iso15693_sprintUID(NULL, uid));
|
||||||
PrintAndLogEx(SUCCESS, " SYSINFO: %s", sprint_hex(data, resp.length - 2));
|
PrintAndLogEx(SUCCESS, " SYSINFO: %s", sprint_hex(data, resp.length - 2));
|
||||||
|
|
|
@ -4282,7 +4282,7 @@ int info_iclass(bool shallow_mod) {
|
||||||
picopass_ns_hdr_t *ns_hdr = &r->header.ns_hdr;
|
picopass_ns_hdr_t *ns_hdr = &r->header.ns_hdr;
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--------------------- " _CYAN_("Tag Information") " ----------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ----------------------------------------");
|
||||||
|
|
||||||
if ((r->status & FLAG_ICLASS_CSN) == FLAG_ICLASS_CSN) {
|
if ((r->status & FLAG_ICLASS_CSN) == FLAG_ICLASS_CSN) {
|
||||||
PrintAndLogEx(SUCCESS, " CSN: " _GREEN_("%s") " uid", sprint_hex(hdr->csn, sizeof(hdr->csn)));
|
PrintAndLogEx(SUCCESS, " CSN: " _GREEN_("%s") " uid", sprint_hex(hdr->csn, sizeof(hdr->csn)));
|
||||||
|
|
|
@ -83,7 +83,7 @@ static int decode_and_print_memory(uint16_t card_size, const uint8_t *input_buff
|
||||||
int crc = data[4];
|
int crc = data[4];
|
||||||
uint32_t calc_crc = CRC8Legic(data, 4);
|
uint32_t calc_crc = CRC8Legic(data, 4);
|
||||||
|
|
||||||
PrintAndLogEx(INFO, "--------------------- " _CYAN_("Tag Information") " ----------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ----------------------------------------");
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(SUCCESS, " " _CYAN_("CDF: System Area"));
|
PrintAndLogEx(SUCCESS, " " _CYAN_("CDF: System Area"));
|
||||||
PrintAndLogEx(INFO, "------------------------------------------------------");
|
PrintAndLogEx(INFO, "------------------------------------------------------");
|
||||||
|
|
|
@ -283,7 +283,6 @@ static int CmdHFMFPInfo(const char *Cmd) {
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
|
||||||
|
|
||||||
// Mifare Plus info
|
// Mifare Plus info
|
||||||
SendCommandMIX(CMD_HF_ISO14443A_READER, ISO14A_CONNECT, 0, 0, NULL, 0);
|
SendCommandMIX(CMD_HF_ISO14443A_READER, ISO14A_CONNECT, 0, 0, NULL, 0);
|
||||||
|
|
|
@ -1785,7 +1785,6 @@ static int CmdHF14AMfUInfo(const char *Cmd) {
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " --------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " --------------------------");
|
||||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
|
||||||
ul_print_type(tagtype, 6);
|
ul_print_type(tagtype, 6);
|
||||||
|
|
||||||
// Swap endianness
|
// Swap endianness
|
||||||
|
|
|
@ -2162,14 +2162,14 @@ static command_t CommandTable[] = {
|
||||||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||||
{"brute", CmdEM4x05Brute, IfPm3Lf, "Bruteforce password"},
|
{"brute", CmdEM4x05Brute, IfPm3Lf, "Bruteforce password"},
|
||||||
{"chk", CmdEM4x05Chk, IfPm3Lf, "Check passwords from dictionary"},
|
{"chk", CmdEM4x05Chk, IfPm3Lf, "Check passwords from dictionary"},
|
||||||
{"demod", CmdEM4x05Demod, AlwaysAvailable, "demodulate a EM4x05/EM4x69 tag from the GraphBuffer"},
|
{"demod", CmdEM4x05Demod, AlwaysAvailable, "Demodulate a EM4x05/EM4x69 tag from the GraphBuffer"},
|
||||||
{"dump", CmdEM4x05Dump, IfPm3Lf, "dump EM4x05/EM4x69 tag"},
|
{"dump", CmdEM4x05Dump, IfPm3Lf, "Dump EM4x05/EM4x69 tag"},
|
||||||
{"info", CmdEM4x05Info, IfPm3Lf, "tag information EM4x05/EM4x69"},
|
{"info", CmdEM4x05Info, IfPm3Lf, "Tag information"},
|
||||||
{"read", CmdEM4x05Read, IfPm3Lf, "read word data from EM4x05/EM4x69"},
|
{"read", CmdEM4x05Read, IfPm3Lf, "Read word data from EM4x05/EM4x69"},
|
||||||
{"sniff", CmdEM4x05Sniff, AlwaysAvailable, "Attempt to recover em4x05 commands from sample buffer"},
|
{"sniff", CmdEM4x05Sniff, AlwaysAvailable, "Attempt to recover em4x05 commands from sample buffer"},
|
||||||
{"unlock", CmdEM4x05Unlock, IfPm3Lf, "execute tear off against EM4x05/EM4x69"},
|
{"unlock", CmdEM4x05Unlock, IfPm3Lf, "Execute tear off against EM4x05/EM4x69"},
|
||||||
{"wipe", CmdEM4x05Wipe, IfPm3Lf, "wipe EM4x05/EM4x69 tag"},
|
{"wipe", CmdEM4x05Wipe, IfPm3Lf, "Wipe EM4x05/EM4x69 tag"},
|
||||||
{"write", CmdEM4x05Write, IfPm3Lf, "write word data to EM4x05/EM4x69"},
|
{"write", CmdEM4x05Write, IfPm3Lf, "Write word data to EM4x05/EM4x69"},
|
||||||
{NULL, NULL, NULL, NULL}
|
{NULL, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,6 @@ static void print_info_result(const uint8_t *data) {
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(INFO, "-----------------------------------------------");
|
|
||||||
|
|
||||||
PrintAndLogEx(INFO, "Block | data | info");
|
PrintAndLogEx(INFO, "Block | data | info");
|
||||||
PrintAndLogEx(INFO, "------+----------+-----------------------------");
|
PrintAndLogEx(INFO, "------+----------+-----------------------------");
|
||||||
|
|
||||||
|
|
|
@ -514,7 +514,6 @@ static int CmdLFHitagInfo(const char *Cmd) {
|
||||||
|
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
|
||||||
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%08X"), uid);
|
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%08X"), uid);
|
||||||
PrintAndLogEx(SUCCESS, " TYPE: " _GREEN_("%s"), getHitagTypeStr(uid));
|
PrintAndLogEx(SUCCESS, " TYPE: " _GREEN_("%s"), getHitagTypeStr(uid));
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ The following definition has be crystallized out from these experiments. Its no
|
||||||
```
|
```
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
PrintAndLogEx(INFO, "-------------------------------------------------------------");
|
|
||||||
```
|
```
|
||||||
For more examples, see also all **-h** helptext now in the LUA scripts.
|
For more examples, see also all **-h** helptext now in the LUA scripts.
|
||||||
For the command help texts using _YELLOW_ for the example makes it very easy to see what is the command vs the description.
|
For the command help texts using _YELLOW_ for the example makes it very easy to see what is the command vs the description.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue