X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/10403a6a3005f81839603dcb415ee352f939c06b..3de045905f901cc0d1ea49738c7d290a3acda541:/client/cmdhf14b.c?ds=inline diff --git a/client/cmdhf14b.c b/client/cmdhf14b.c index 4582de88..36c517e0 100644 --- a/client/cmdhf14b.c +++ b/client/cmdhf14b.c @@ -17,6 +17,7 @@ #include "proxmark3.h" #include "data.h" #include "graph.h" +#include "util.h" #include "ui.h" #include "cmdparser.h" #include "cmdhf14b.h" @@ -356,7 +357,7 @@ int CmdHF14BCmdRaw (const char *cmd) { SendCommand(&c); if (reply) { - if (WaitForResponseTimeout(CMD_ACK,&resp,10000)) { + if (WaitForResponseTimeout(CMD_ACK,&resp,1000)) { recv = resp.d.asBytes; PrintAndLog("received %i octets",resp.arg[0]); if(!resp.arg[0]) @@ -403,22 +404,27 @@ int CmdHF14BWrite( const char *Cmd){ bool isSrix4k = true; char str[20]; - if (cmdp == 'h' || cmdp == 'H') { + if (strlen(Cmd) < 1 || cmdp == 'h' || cmdp == 'H') { PrintAndLog("Usage: hf 14b write <1|2> "); PrintAndLog(" [1 = SRIX4K]"); - PrintAndLog(" [2 = SRIX4K]"); - PrintAndLog(" [BLOCK number depends on which tag, special block == 255]"); - PrintAndLog(" sample: hf 14b write 1 127 11223344"); - PrintAndLog(" : hf 14b write 1 255 11223344"); + PrintAndLog(" [2 = SRI512]"); + PrintAndLog(" [BLOCK number depends on tag, special block == FF]"); + PrintAndLog(" sample: hf 14b write 1 7F 11223344"); + PrintAndLog(" : hf 14b write 1 FF 11223344"); PrintAndLog(" : hf 14b write 2 15 11223344"); - PrintAndLog(" : hf 14b write 2 255 11223344"); + PrintAndLog(" : hf 14b write 2 FF 11223344"); return 0; } - if ( param_getchar(Cmd, 0) == '2' ) + if ( cmdp == '2' ) isSrix4k = false; - blockno = param_get8(Cmd, 1); + //blockno = param_get8(Cmd, 1); + + if ( param_gethex(Cmd,1, &blockno, 2) ) { + PrintAndLog("Block number must include 2 HEX symbols"); + return 0; + } if ( isSrix4k ){ if ( blockno > 0x7f && blockno != 0xff ){ @@ -438,11 +444,12 @@ int CmdHF14BWrite( const char *Cmd){ } if ( blockno == 0xff) - PrintAndLog("Writing to special block %02X [ %s]", blockno, sprint_hex(data,4) ); + PrintAndLog("[%s] Write special block %02X [ %s ]", (isSrix4k)?"SRIX4K":"SRI512" , blockno, sprint_hex(data,4) ); else - PrintAndLog("Writing to block %02X [ %s]", blockno, sprint_hex(data,4) ); + PrintAndLog("[%s] Write block %02X [ %s ]", (isSrix4k)?"SRIX4K":"SRI512", blockno, sprint_hex(data,4) ); sprintf(str, "-c -p 09 %02x %02x%02x%02x%02x", blockno, data[0], data[1], data[2], data[3]); + CmdHF14BCmdRaw(str); return 0; }