X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/bf7163bdb387693ea592c212c659bbb095f84cb4..dbf732ee410d7e0eafcc325ab7ccc70667b77939:/client/cmdlf.c diff --git a/client/cmdlf.c b/client/cmdlf.c index 6511ba13..22aa1e05 100644 --- a/client/cmdlf.c +++ b/client/cmdlf.c @@ -27,6 +27,7 @@ #include "cmdlfhitag.h" #include "cmdlft55xx.h" #include "cmdlfpcf7931.h" +#include "cmdlfio.h" static int CmdHelp(const char *Cmd); @@ -128,7 +129,7 @@ int CmdFlexdemod(const char *Cmd) RepaintGraphWindow(); return 0; } - + int CmdIndalaDemod(const char *Cmd) { // Usage: recover 64bit UID by default, specify "224" as arg to recover a 224bit UID @@ -362,7 +363,7 @@ int CmdLFRead(const char *Cmd) c.arg[0] = 1; } else if (*Cmd == '\0') { c.arg[0] = 0; - } else if (sscanf(Cmd, "%i", &c.arg[0]) != 1) { + } else if (sscanf(Cmd, "%"lli, &c.arg[0]) != 1) { PrintAndLog("use 'read' or 'read h', or 'read '"); return 0; } @@ -449,6 +450,28 @@ int CmdLFSimManchester(const char *Cmd) return 0; } +int CmdLFSnoop(const char *Cmd) +{ + UsbCommand c = {CMD_LF_SNOOP_RAW_ADC_SAMPLES}; + // 'h' means higher-low-frequency, 134 kHz + c.arg[0] = 0; + c.arg[1] = -1; + if (*Cmd == 0) { + // empty + } else if (*Cmd == 'l') { + sscanf(Cmd, "l %"lli, &c.arg[1]); + } else if(*Cmd == 'h') { + c.arg[0] = 1; + sscanf(Cmd, "h %"lli, &c.arg[1]); + } else if (sscanf(Cmd, "%"lli" %"lli, &c.arg[0], &c.arg[1]) < 1) { + PrintAndLog("use 'snoop' or 'snoop {l,h} [trigger threshold]', or 'snoop [trigger threshold]'"); + return 0; + } + SendCommand(&c); + WaitForResponse(CMD_ACK,NULL); + return 0; +} + int CmdVchDemod(const char *Cmd) { // Is this the entire sync pattern, or does this also include some @@ -532,12 +555,14 @@ static command_t CommandTable[] = {"em4x", CmdLFEM4X, 1, "{ EM4X RFIDs... }"}, {"flexdemod", CmdFlexdemod, 1, "Demodulate samples for FlexPass"}, {"hid", CmdLFHID, 1, "{ HID RFIDs... }"}, + {"io", CmdLFIO, 1, "{ ioProx tags... }"}, {"indalademod", CmdIndalaDemod, 1, "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"}, {"indalaclone", CmdIndalaClone, 1, " ['l']-- Clone Indala to T55x7 (tag must be in antenna)(UID in HEX)(option 'l' for 224 UID"}, - {"read", CmdLFRead, 0, "['h'|] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134, alternatively: f=12MHz/(divisor+1))"}, + {"read", CmdLFRead, 0, "['h' or ] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134, alternatively: f=12MHz/(divisor+1))"}, {"sim", CmdLFSim, 0, "[GAP] -- Simulate LF tag from buffer with optional GAP (in microseconds)"}, {"simbidir", CmdLFSimBidir, 0, "Simulate LF tag (with bidirectional data transmission between reader and tag)"}, {"simman", CmdLFSimManchester, 0, " [GAP] Simulate arbitrary Manchester LF tag"}, + {"snoop", CmdLFSnoop, 0, "['l'|'h'|] [trigger threshold]-- Snoop LF (l:125khz, h:134khz)"}, {"ti", CmdLFTI, 1, "{ TI RFIDs... }"}, {"hitag", CmdLFHitag, 1, "{ Hitag tags and transponders... }"}, {"vchdemod", CmdVchDemod, 1, "['clone'] -- Demodulate samples for VeriChip"},