mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-20 13:23:25 -07:00
return an error when READBLOCK goes beyond tag size during emulation
This commit is contained in:
parent
dddbb67c40
commit
e495771602
1 changed files with 21 additions and 13 deletions
|
@ -2520,23 +2520,31 @@ void SimTagIso15693(uint32_t parameter, uint8_t *uid) {
|
||||||
uint8_t block = cmd[2 + (addressed ? 8 : 0)];
|
uint8_t block = cmd[2 + (addressed ? 8 : 0)];
|
||||||
|
|
||||||
if(!private) {
|
if(!private) {
|
||||||
resp[0] = ISO15693_NOERROR;
|
|
||||||
if(block < 8)
|
if(block < 8)
|
||||||
{
|
{
|
||||||
Dbprintf("READBLOCK %d", block);
|
Dbprintf("READBLOCK %d", block);
|
||||||
}
|
|
||||||
else
|
resp[0] = ISO15693_NOERROR;
|
||||||
{
|
memcpy(&resp[1], &memory[4 * (block%8)], 4);
|
||||||
Dbprintf("READBLOCK %d (beyond size)", block);
|
|
||||||
}
|
crc = Iso15693Crc(resp, 5);
|
||||||
memcpy(&resp[1], &memory[4 * (block%8)], 4);
|
resp[5] = crc & 0xff;
|
||||||
|
resp[6] = crc >> 8;
|
||||||
crc = Iso15693Crc(resp, 5);
|
|
||||||
resp[5] = crc & 0xff;
|
|
||||||
resp[6] = crc >> 8;
|
|
||||||
|
|
||||||
CodeIso15693AsTag(resp, sizeof(resp));
|
CodeIso15693AsTag(resp, sizeof(resp));
|
||||||
TransmitTo15693Reader(ToSend, ToSendMax, &start_time, 0, slow);
|
TransmitTo15693Reader(ToSend, ToSendMax, &start_time, 0, slow);
|
||||||
|
} else {
|
||||||
|
Dbprintf("READBLOCK %d (error, beyond size)", block);
|
||||||
|
|
||||||
|
resp[0] = ISO15693_RES_ERROR;
|
||||||
|
resp[1] = ISO15693_ERROR_GENERIC;
|
||||||
|
crc = Iso15693Crc(resp, 2);
|
||||||
|
resp[2] = crc & 0xff;
|
||||||
|
resp[3] = crc >> 8;
|
||||||
|
|
||||||
|
CodeIso15693AsTag(resp, 4);
|
||||||
|
TransmitTo15693Reader(ToSend, ToSendMax, &start_time, 0, slow);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Dbprintf("READBLOCK %d (won't answer, privacy mode)", block);
|
Dbprintf("READBLOCK %d (won't answer, privacy mode)", block);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue