added: readed blocks (password mode) into tag.sectors[]. 'lf hitag sim' simulates the readed blocks.

This commit is contained in:
thijsbreman@gmail.com 2012-10-18 10:01:13 +00:00
commit 219a334de5
2 changed files with 20 additions and 10 deletions

View file

@ -477,16 +477,26 @@ bool hitag2_password(byte_t* rx, const size_t rxlen, byte_t* tx, size_t* txlen)
*txlen = 32;
memcpy(tx,password,4);
bPwd = true;
memcpy(tag.sectors[blocknr],rx,4);
blocknr++;
} else {
if (blocknr > 7) {
DbpString("Read succesful!");
// We are done... for now
return false;
}
*txlen = 10;
tx[0] = 0xc0 | (blocknr << 3) | ((blocknr^7) >> 2);
tx[1] = ((blocknr^7) << 6);
blocknr++;
if(blocknr == 1){
//store password in block1, the TAG answers with Block3, but we need the password in memory
memcpy(tag.sectors[blocknr],tx,4);
}else{
memcpy(tag.sectors[blocknr],rx,4);
}
blocknr++;
if (blocknr > 7) {
DbpString("Read succesful!");
// We are done... for now
return false;
}
*txlen = 10;
tx[0] = 0xc0 | (blocknr << 3) | ((blocknr^7) >> 2);
tx[1] = ((blocknr^7) << 6);
}
} break;

View file

@ -199,7 +199,7 @@ int CmdLFHitagReader(const char *Cmd) {
PrintAndLog(" Hitag2 (2*)",htf);
PrintAndLog(" 21 <password> (password mode)",htf);
PrintAndLog(" 22 <nr> <ar> (authentication)",htf);
PrintAndLog(" 23 <key> (authentication)",htf);
PrintAndLog(" 23 <key> (authentication) key is in format: ISK high + ISK low",htf);
PrintAndLog(" 25 (test recorded authentications)",htf);
return 1;
} break;