mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-01-02 21:54:10 +08:00
ADD: a print_hex_break function,
CHG: "hf legic decode" looks better.
This commit is contained in:
parent
6a18e46fa6
commit
a182a680b0
2 changed files with 12 additions and 15 deletions
|
@ -165,13 +165,12 @@ int CmdLegicDecode(const char *Cmd) {
|
|||
|
||||
if ( hasWRC ) {
|
||||
PrintAndLog("WRC protected area: (I %d | K %d| WRC %d)", i, k, wrc);
|
||||
|
||||
for ( k=i; k < wrc; k++)
|
||||
data_buf[k] ^= crc;
|
||||
|
||||
//is WRC / 8?
|
||||
|
||||
// for ( k=i; k < wrc; k += 8)
|
||||
|
||||
// de-xor? if not zero, assume it needs xoring.
|
||||
if ( data_buf[i] > 0) {
|
||||
for ( k=i; k < wrc; ++k)
|
||||
data_buf[k] ^= crc;
|
||||
}
|
||||
print_hex_break( data_buf+i, wrc, 16);
|
||||
|
||||
i += wrc;
|
||||
|
@ -182,34 +181,32 @@ int CmdLegicDecode(const char *Cmd) {
|
|||
|
||||
// de-xor? if not zero, assume it needs xoring.
|
||||
if ( data_buf[i] > 0) {
|
||||
for (k=i; k < wrp_len; k++)
|
||||
for (k=i; k < wrp_len; ++k)
|
||||
data_buf[k] ^= crc;
|
||||
}
|
||||
|
||||
// for (k=i; k < wrp_len; k += 16) {
|
||||
|
||||
print_hex_break( data_buf+i, wrp_len, 16);
|
||||
// }
|
||||
|
||||
i += wrp_len;
|
||||
|
||||
// does this one work?
|
||||
if( wrp_len == 8 )
|
||||
PrintAndLog("Card ID: %2X%02X%02X", data_buf[i-4]^crc, data_buf[i-3]^crc, data_buf[i-2]^crc);
|
||||
}
|
||||
|
||||
PrintAndLog("Remaining segment payload:");
|
||||
PrintAndLog("Remaining segment payload: (I %d | K %d | Remain LEN %d)", i, k, remain_seg_payload_len);
|
||||
|
||||
if ( data_buf[i] > 0 ) {
|
||||
for ( k=i; k < remain_seg_payload_len; k++)
|
||||
for ( k=i; k < remain_seg_payload_len; ++k)
|
||||
data_buf[k] ^= crc;
|
||||
}
|
||||
|
||||
// for ( k=i; k < remain_seg_payload_len; k++)
|
||||
print_hex_break( data_buf+i, remain_seg_payload_len, 16);
|
||||
|
||||
i += remain_seg_payload_len;
|
||||
|
||||
printf("\n-------------------------------------\n");
|
||||
|
||||
// end with last segment
|
||||
if (segment_flag & 0x8) return 0;
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ void print_hex_break(const uint8_t *data, const size_t len, uint8_t breaks) {
|
|||
|
||||
// check if a line break is needed
|
||||
if ( (breaks > 0) && (i > 0) && !(i % breaks) )
|
||||
printf("\n");
|
||||
printf("(%d %d)\n", i , breaks);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue