X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/3e134b4c20a5528b8264cd87d3fdebd0b2df6fd9..e719470c461e38fb3ad99416d06fa1b5b19ff357:/client/cmdhflegic.c diff --git a/client/cmdhflegic.c b/client/cmdhflegic.c index d6aaaf3d..731cead1 100644 --- a/client/cmdhflegic.c +++ b/client/cmdhflegic.c @@ -14,32 +14,36 @@ static int CmdHelp(const char *Cmd); int usage_legic_calccrc8(void){ PrintAndLog("Calculates the legic crc8/crc16 on the input hexbytes."); PrintAndLog("There must be an even number of hexsymbols as input."); - PrintAndLog("Usage: hf legic crc8 [h] b u "); - PrintAndLog("Options :"); + PrintAndLog("Usage: hf legic crc8 [h] b u c "); + PrintAndLog("Options:"); PrintAndLog(" b : hex bytes"); PrintAndLog(" u : MCC hexbyte"); + PrintAndLog(" c : 8|16 bit crc size"); PrintAndLog(""); - PrintAndLog("Samples :"); + PrintAndLog("Samples:"); PrintAndLog(" hf legic crc8 b deadbeef1122"); - PrintAndLog(" hf legic crc8 b deadbeef1122 u 9A"); + PrintAndLog(" hf legic crc8 b deadbeef1122 u 9A c 16"); return 0; } int usage_legic_load(void){ PrintAndLog("It loads datasamples from the file `filename` to device memory"); PrintAndLog("Usage: hf legic load "); - PrintAndLog(" sample: hf legic load filename"); + PrintAndLog(""); + PrintAndLog("Samples:"); + PrintAndLog(" hf legic load filename"); return 0; } int usage_legic_read(void){ PrintAndLog("Read data from a legic tag."); PrintAndLog("Usage: hf legic read "); - PrintAndLog("Options :"); + PrintAndLog("Options:"); PrintAndLog(" : offset in data array to start download from"); PrintAndLog(" : number of bytes to download"); PrintAndLog(""); - PrintAndLog(" sample: hf legic read"); + PrintAndLog("Samples:"); + PrintAndLog(" hf legic read"); return 0; } @@ -523,8 +527,7 @@ int CmdLegicRfRawWrite(const char *Cmd) { PrintAndLog("# changing the DCF is irreversible #"); PrintAndLog("#####################################"); PrintAndLog("do youe really want to continue? y(es) n(o)"); - scanf(" %c", &answer); - if (answer == 'y' || answer == 'Y') { + if (scanf(" %c", &answer) > 0 && (answer == 'y' || answer == 'Y')) { SendCommand(&c); return 0; } @@ -547,7 +550,7 @@ int CmdLegicRfFill(const char *Cmd) { int i; UsbCommand c = {CMD_DOWNLOADED_SIM_SAMPLES_125K, {0, 0, 0}}; - memcpy(c.d.asBytes, cmd.arg[2], 48); + memset(c.d.asBytes, cmd.arg[2], 48); for(i = 0; i < 22; i++) { c.arg[0] = i*48; @@ -563,7 +566,7 @@ int CmdLegicRfFill(const char *Cmd) { int CmdLegicCalcCrc8(const char *Cmd){ - uint8_t *data; + uint8_t *data = NULL; uint8_t cmdp = 0, uidcrc = 0, type=0; bool errors = false; int len = 0; @@ -608,7 +611,7 @@ int CmdLegicCalcCrc8(const char *Cmd){ } //Validations if (errors){ - if (data != NULL) free(data); + if (data) free(data); return usage_legic_calccrc8(); } @@ -621,7 +624,7 @@ int CmdLegicCalcCrc8(const char *Cmd){ break; } - free(data); + if (data) free(data); return 0; }