CHANGELOG.md and text changes

This commit is contained in:
Matthew Jackson 2023-02-20 00:34:06 -06:00
commit 147475ab40
3 changed files with 70 additions and 69 deletions

View file

@ -16,6 +16,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
- Added `--back` option to `clear` command to clear the scrollback buffer (@wh201906) - Added `--back` option to `clear` command to clear the scrollback buffer (@wh201906)
- Mark credentials as decrypted in the dump generated by `hf iclass decrypt` - Mark credentials as decrypted in the dump generated by `hf iclass decrypt`
- Show credentials when using `hf iclass view` on a decrypted dump - Show credentials when using `hf iclass view` on a decrypted dump
- Show NTAG213TT tamper info in `hf mfu info` and add commands for configuring it's tamper feature (@mjaksn)
## [Nitride.4.16191][2023-01-29] ## [Nitride.4.16191][2023-01-29]
- Changed `build_all_firmwares.sh` to fit GENERIC 256kb firmware images (@doegox) - Changed `build_all_firmwares.sh` to fit GENERIC 256kb firmware images (@doegox)

View file

@ -823,7 +823,7 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
} }
if (tt_msg_lock) { if (tt_msg_lock) {
PrintAndLogEx(INFO, " - tag tamper message is permanently locked"); PrintAndLogEx(INFO, " - tamper message is permanently locked and cannot be written or read from memory");
} }
} else if (tagtype & (NTAG_213_F | NTAG_216_F)) { } else if (tagtype & (NTAG_213_F | NTAG_216_F)) {
@ -909,7 +909,7 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
tt_enabled = (data[1] & 0x02); tt_enabled = (data[1] & 0x02);
tt_msg_resp_len = ul_read(45, tt_message, 4); tt_msg_resp_len = ul_read(45, tt_message, 4);
PrintAndLogEx(INFO, " - tamper detection is %s" PrintAndLogEx(INFO, " - tamper detection feature is %s"
, (tt_enabled) ? _GREEN_("ENABLED") : "disabled" , (tt_enabled) ? _GREEN_("ENABLED") : "disabled"
); );
@ -918,11 +918,11 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
PrintAndLogEx(INFO, " - tamper message is unlocked and read/write enabled"); PrintAndLogEx(INFO, " - tamper message is unlocked and read/write enabled");
break; break;
case 0x02: case 0x02:
PrintAndLogEx(INFO, " - tamper message is reversibly read/write protected in memory while the tamper feature is enabled"); PrintAndLogEx(INFO, " - tamper message is reversibly read/write locked in memory while the tamper feature is enabled");
break; break;
case 0x04: case 0x04:
case 0x06: case 0x06:
PrintAndLogEx(INFO, " - tamper message is permanently read/write protected in memory"); PrintAndLogEx(INFO, " - tamper message is permanently read/write locked in memory");
break; break;
default: default:
break; break;
@ -948,19 +948,20 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
if (tagtype & NTAG_213_TT) { if (tagtype & NTAG_213_TT) {
if (data[1] & 0x06) { if (data[1] & 0x06) {
PrintAndLogEx(INFO, "TT_MSG [45/0x2D]: %s- (cannot be read)", sprint_hex(tt_message, tt_msg_resp_len)); PrintAndLogEx(INFO, "TT_MSG [45/0x2D]: %s- (cannot be read)", sprint_hex(tt_message, tt_msg_resp_len));
PrintAndLogEx(INFO, " - tamper message is masked in memory"); PrintAndLogEx(INFO, " - tamper message is masked in memory, but can be revealed in the READ_TT_STATUS command response if tampering was detected");
} else { } else {
PrintAndLogEx(INFO, "TT_MSG [45/0x2D]: %s", sprint_hex(tt_message, tt_msg_resp_len)); PrintAndLogEx(INFO, "TT_MSG [45/0x2D]: %s", sprint_hex(tt_message, tt_msg_resp_len));
PrintAndLogEx(INFO, " - tamper message is %s", sprint_hex(tt_message, tt_msg_resp_len)); PrintAndLogEx(INFO, " - tamper message (read from memory) is %s", sprint_hex(tt_message, tt_msg_resp_len));
} }
} }
if ((tagtype & NTAG_213_TT) && tt_enabled) { //The tag only returns meaningful information for the fields below if the tamper feature is enabled //The NTAG213TT only returns meaningful information for the fields below if the tamper feature is enabled
if ((tagtype & NTAG_213_TT) && tt_enabled) {
uint8_t tt_status_len = ntagtt_getTamperStatus(tt_status_resp, 5); uint8_t tt_status_len = ntagtt_getTamperStatus(tt_status_resp, 5);
if (tt_status_len != 5) { if (tt_status_len != 5) {
PrintAndLogEx(WARNING, "Error requesting tamper status from tag\n"); PrintAndLogEx(WARNING, "Error sending the read TT status command to tag\n");
return PM3_ESOFT; return PM3_ESOFT;
} }
@ -968,16 +969,16 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
PrintAndLogEx(INFO, "--- " _CYAN_("Tamper Status")); PrintAndLogEx(INFO, "--- " _CYAN_("Tamper Status"));
PrintAndLogEx(INFO, " READ_TT_STATUS: %s", sprint_hex(tt_status_resp, 5)); PrintAndLogEx(INFO, " READ_TT_STATUS: %s", sprint_hex(tt_status_resp, 5));
PrintAndLogEx(INFO, " Tamper detection result from this power-up:"); PrintAndLogEx(INFO, " Tamper status result from this power-up:");
switch (tt_status_resp[4]) { switch (tt_status_resp[4]) {
case 0x43: case 0x43:
PrintAndLogEx(INFO, " - Tamper wire was detcted as closed during this power-up"); PrintAndLogEx(INFO, " - Tamper loop was detcted as closed during this power-up");
break; break;
case 0x4F: case 0x4F:
PrintAndLogEx(INFO, " - Tamper wire was detected as open during this power-up"); PrintAndLogEx(INFO, " - Tamper loop was detected as open during this power-up");
break; break;
case 0x49: case 0x49:
PrintAndLogEx(INFO, " - No tamper wire measurement from this power-up is available"); PrintAndLogEx(INFO, " - Tamper loop measurement from this power-up was not enabled or not valid");
break; break;
default: default:
break; break;
@ -986,10 +987,10 @@ static int ulev1_print_configuration(uint32_t tagtype, uint8_t *data, uint8_t st
PrintAndLogEx(INFO, " Tamper detection permanent memory:"); PrintAndLogEx(INFO, " Tamper detection permanent memory:");
if ((tt_status_resp[0] | tt_status_resp [1] | tt_status_resp[2] | tt_status_resp[3]) == 0x00) if ((tt_status_resp[0] | tt_status_resp [1] | tt_status_resp[2] | tt_status_resp[3]) == 0x00)
PrintAndLogEx(INFO, " - Tamper wire has never been detected as open during power-up"); PrintAndLogEx(INFO, " - Tamper loop has never been detected as open during power-up");
else { else {
PrintAndLogEx(INFO, " - Tamper wire has previously been detected as open during power-up"); PrintAndLogEx(INFO, " - Tamper loop was detected as open during power-up at least once");
PrintAndLogEx(INFO, " - Tamper message: %s", sprint_hex(tt_status_resp, 4)); PrintAndLogEx(INFO, " - Tamper message returned by READ_TT_STATUS command: %s", sprint_hex(tt_status_resp, 4));
} }
} }
return PM3_SUCCESS; return PM3_SUCCESS;
@ -2746,8 +2747,7 @@ int CmdHF14MfUTamper(const char *Cmd) {
return PM3_ESOFT; return PM3_ESOFT;
} }
if(use_msg) if (use_msg) {
{
if (ul_select(&card) == false) { if (ul_select(&card) == false) {
DropField(); DropField();
return UL_ERROR; return UL_ERROR;