mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-03-12 04:35:28 -07:00
CHG: and now that I do actually check on bitlenght, I can get a better annotation yet again. Looking at it raises a question, acknowledge is 0x19 or 0x39, they just don't match up with tagtype identification of 0x0D, 0x1D, 0x39. I'll need to look at a 1024 tags response in a trace with a valid reader.
This commit is contained in:
parent
06c185d020
commit
7c91c8bf24
@ -370,19 +370,20 @@ void annotateIso14443b(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize) {
|
||||
// 1 = read
|
||||
// 0 = write
|
||||
// Quite simpel tag
|
||||
void annotateLegic(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){
|
||||
|
||||
uint8_t bitsend = cmd[0];
|
||||
|
||||
void annotateLegic(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){
|
||||
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");
|
||||
switch ( cmd[1] ) {
|
||||
case LEGIC_MIM_22: snprintf(exp, size, "MIM22"); break;
|
||||
case LEGIC_MIM_256: snprintf(exp, size, "MIM256"); break;
|
||||
case LEGIC_MIM_1024: snprintf(exp, size, "MIM1024"); break;
|
||||
case LEGIC_ACK_22: snprintf(exp, size, "ACK 22"); break;
|
||||
case LEGIC_ACK_256: snprintf(exp, size, "ACK 256/1024"); break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
@ -681,14 +682,20 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui
|
||||
}
|
||||
}
|
||||
|
||||
if (data_len == 0 )
|
||||
if (data_len == 0 ) {
|
||||
sprintf(line[0],"<empty trace - possible error>");
|
||||
return tracepos;
|
||||
}
|
||||
|
||||
//--- Draw the CRC column
|
||||
// Draw the CRC column
|
||||
char *crc = (crcStatus == 0 ? "!crc" : (crcStatus == 1 ? " ok " : " "));
|
||||
|
||||
EndOfTransmissionTimestamp = timestamp + duration;
|
||||
|
||||
// Always annotate LEGIC read/tag
|
||||
if ( protocol == LEGIC )
|
||||
annotateLegic(explanation,sizeof(explanation),frame,data_len);
|
||||
|
||||
if (!isResponse) {
|
||||
switch(protocol) {
|
||||
case ICLASS: annotateIclass(explanation,sizeof(explanation),frame,data_len); break;
|
||||
@ -697,7 +704,7 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui
|
||||
case ISO_14443B: annotateIso14443b(explanation,sizeof(explanation),frame,data_len); break;
|
||||
case TOPAZ: annotateTopaz(explanation,sizeof(explanation),frame,data_len); break;
|
||||
case ISO_7816_4: annotateIso7816(explanation,sizeof(explanation),frame,data_len); break;
|
||||
case LEGIC: annotateLegic(explanation,sizeof(explanation),frame,data_len); break;
|
||||
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
@ -326,8 +326,11 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
|
||||
#define MFDES_AUTHENTICATION_FRAME 0xAF
|
||||
|
||||
// LEGIC Commands
|
||||
#define LEGIC_HSK_22 0x19
|
||||
#define LEGIC_HSK_256 0x39
|
||||
#define LEGIC_MIM_22 0x0D
|
||||
#define LEGIC_MIM_256 0x1D
|
||||
#define LEGIC_MIM_1024 0x3D
|
||||
#define LEGIC_ACK_22 0x19
|
||||
#define LEGIC_ACK_256 0x39
|
||||
#define LEGIC_READ 0x01
|
||||
#define LEGIC_WRITE 0x00
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user