From: thijsbreman@gmail.com Date: Thu, 18 Oct 2012 10:01:13 +0000 (+0000) Subject: added: readed blocks (password mode) into tag.sectors[]. 'lf hitag sim' simulates... X-Git-Tag: v1.0.0~139 X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/219a334de5f6af339e6d9a9ca0ea215c4565e778 added: readed blocks (password mode) into tag.sectors[]. 'lf hitag sim' simulates the readed blocks. --- diff --git a/armsrc/hitag2.c b/armsrc/hitag2.c index 59f29eae..37eb211c 100644 --- a/armsrc/hitag2.c +++ b/armsrc/hitag2.c @@ -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; diff --git a/client/cmdlfhitag.c b/client/cmdlfhitag.c index bdabe5e4..c852544c 100644 --- a/client/cmdlfhitag.c +++ b/client/cmdlfhitag.c @@ -199,7 +199,7 @@ int CmdLFHitagReader(const char *Cmd) { PrintAndLog(" Hitag2 (2*)",htf); PrintAndLog(" 21 (password mode)",htf); PrintAndLog(" 22 (authentication)",htf); - PrintAndLog(" 23 (authentication)",htf); + PrintAndLog(" 23 (authentication) key is in format: ISK high + ISK low",htf); PrintAndLog(" 25 (test recorded authentications)",htf); return 1; } break;