X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/0de8e3874d6524379550a50a4d9c29faf2d239ea..f14c9bf915f883b5dfa8645dcaf1ded8d5978b90:/client/cmdlf.c diff --git a/client/cmdlf.c b/client/cmdlf.c index db08310a..36c07628 100644 --- a/client/cmdlf.c +++ b/client/cmdlf.c @@ -36,26 +36,25 @@ static int CmdHelp(const char *Cmd); int usage_lf_cmdread() { - PrintAndLog("Usage: lf cmdread [H] "); + PrintAndLog("Usage: lf cmdread [H|L]"); PrintAndLog("Options: "); PrintAndLog(" h This help"); - PrintAndLog(" L Low frequency (125 KHz)"); - PrintAndLog(" H High frequency (134 KHz)"); - PrintAndLog(" H delay OFF"); - PrintAndLog(" H time period ZERO"); - PrintAndLog(" H time period ONE"); + PrintAndLog(" delay offset"); + PrintAndLog(" time period ZERO"); + PrintAndLog(" time period ONE"); + PrintAndLog(" [H|L] Frequency Low (125 KHz) / High (134 KHz)"); PrintAndLog("Examples:"); PrintAndLog(" lf cmdread 80 100 200 11000"); PrintAndLog(" lf cmdread 80 100 100 11000 H"); return 0; } -/* send a command before reading */ +/* send a LF command before reading */ int CmdLFCommandRead(const char *Cmd) { static char dummy[3] = {0x20,0x00,0x00}; bool errors = FALSE; - uint8_t divisor = 0; //125khz + uint8_t divisor = 95; //125khz uint8_t cmdp =0; while(param_getchar(Cmd, cmdp) != 0x00) { @@ -85,7 +84,9 @@ int CmdLFCommandRead(const char *Cmd) if(errors) return usage_lf_cmdread(); UsbCommand c = {CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K}; + sscanf(Cmd, "%"lli" %"lli" %"lli" %s %s", &c.arg[0], &c.arg[1], &c.arg[2],(char*)(&c.d.asBytes),(char*)(&dummy+1)); + // in case they specified 'h' strcpy((char *)&c.d.asBytes + strlen((char *)c.d.asBytes), dummy); @@ -1212,7 +1213,7 @@ static command_t CommandTable[] = {"pcf7931", CmdLFPCF7931, 1, "{ PCF7931 RFIDs... }"}, {"ti", CmdLFTI, 1, "{ TI RFIDs... }"}, {"t55xx", CmdLFT55XX, 1, "{ T55X7 RFIDs... }"}, -{"viking", CmdLFViking, 1, "{ Viking RFIDs... }"}, + {"viking", CmdLFViking, 1, "{ Viking RFIDs... }"}, {"config", CmdLFSetConfig, 0, "Set config for LF sampling, bit/sample, decimation, frequency"}, {"cmdread", CmdLFCommandRead, 0, " <'0' period> <'1' period> ['h' 134] \n\t\t-- Modulate LF reader field to send command before read (all periods in microseconds)"}, @@ -1220,9 +1221,9 @@ static command_t CommandTable[] = {"indalademod", CmdIndalaDemod, 1, "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"}, {"indalaclone", CmdIndalaClone, 0, " ['l']-- Clone Indala to T55x7 (tag must be in antenna)(UID in HEX)(option 'l' for 224 UID"}, {"read", CmdLFRead, 0, "['s' silent] Read 125/134 kHz LF ID-only tag. Do 'lf read h' for help"}, - {"search", CmdLFfind, 1, "[offline] ['u'] Read and Search for valid known tag (in offline mode it you can load first then search) \n\t\t- 'u' to search for unknown tags"}, + {"search", CmdLFfind, 1, "[offline] ['u'] Read and Search for valid known tag (in offline mode it you can load first then search) \n\t\t-- 'u' to search for unknown tags"}, {"sim", CmdLFSim, 0, "[GAP] -- Simulate LF tag from buffer with optional GAP (in microseconds)"}, - {"simask", CmdLFaskSim, 0, "[clock] [invert <1|0>] [manchester/raw <'m'|'r'>] [msg separator 's'] [d ] \n\t\t-- Simulate LF ASK tag from demodbuffer or input"}, + {"simask", CmdLFaskSim, 0, "[clock] [invert <1|0>] [biphase/manchester/raw <'b'|'m'|'r'>] [msg separator 's'] [d ] \n\t\t-- Simulate LF ASK tag from demodbuffer or input"}, {"simfsk", CmdLFfskSim, 0, "[c ] [i] [H ] [L ] [d ] \n\t\t-- Simulate LF FSK tag from demodbuffer or input"}, {"simpsk", CmdLFpskSim, 0, "[1|2|3] [c ] [i] [r ] [d ] \n\t\t-- Simulate LF PSK tag from demodbuffer or input"}, {"simbidir", CmdLFSimBidir, 0, "Simulate LF tag (with bidirectional data transmission between reader and tag)"},