mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
CHG: using bitsend to determind the legic annotation in "hf list legic" makes false positives much less.
This commit is contained in:
parent
e1deabc0eb
commit
faabfafe30
2 changed files with 64 additions and 53 deletions
|
@ -372,21 +372,34 @@ void annotateIso14443b(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize) {
|
|||
// Quite simpel tag
|
||||
void annotateLegic(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){
|
||||
|
||||
if ( cmdsize > 1) {
|
||||
|
||||
uint8_t cmdBit = (cmd[0] & 1);
|
||||
uint8_t address = (cmd[1] << 7) | cmd[0] >> 1;
|
||||
|
||||
if (cmdBit == LEGIC_READ)
|
||||
snprintf(exp, size, "READ Byte(%d)", address);
|
||||
else if (cmdBit == LEGIC_WRITE )
|
||||
snprintf(exp, size, "WRITE Byte(%d)", address);
|
||||
else
|
||||
snprintf(exp, size, "?");
|
||||
|
||||
} else {
|
||||
if ( cmd[0] == LEGIC_HSK_22 ) snprintf(exp, size, "MIM22");
|
||||
if ( cmd[0] == LEGIC_HSK_256 ) snprintf(exp, size, "MIN256/1024");
|
||||
uint8_t bitsend = cmd[0];
|
||||
|
||||
switch (bitsend){
|
||||
case 7:
|
||||
snprintf(exp, size, "IV 0x%02X", cmd[1]);
|
||||
break;
|
||||
case 6: {
|
||||
if ( cmd[1] == LEGIC_HSK_22 )
|
||||
snprintf(exp, size, "MIM22");
|
||||
if ( cmd[1] == LEGIC_HSK_256 )
|
||||
snprintf(exp, size, "MIN256/1024");
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
case 11: {
|
||||
uint8_t cmdBit = (cmd[1] & 1);
|
||||
uint8_t address = (cmd[2] << 7) | cmd[1] >> 1;
|
||||
|
||||
if (cmdBit == LEGIC_READ)
|
||||
snprintf(exp, size, "READ Byte(%d)", address);
|
||||
|
||||
if (cmdBit == LEGIC_WRITE )
|
||||
snprintf(exp, size, "WRITE Byte(%d)", address);
|
||||
break;
|
||||
}
|
||||
case 12:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue