X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a7247d858b195bd21eeba6d65a882323ad71d030..e3dfa4277219c1cb72b906860faf537336bf866c:/winsrc/command.cpp diff --git a/winsrc/command.cpp b/winsrc/command.cpp index b2258640..0214a0ab 100644 --- a/winsrc/command.cpp +++ b/winsrc/command.cpp @@ -107,6 +107,20 @@ static void CmdSri512read(char *str) c.ext1 = atoi(str); SendCommand(&c, FALSE); } + +/* New command to read the contents of a SRIX4K tag + * SRIX4K tags are ISO14443-B modulated memory tags, + * this command just dumps the contents of the memory/ + */ +static void CmdSrix4kread(char *str) +{ + UsbCommand c; + c.cmd = CMD_READ_SRIX4K_TAG; + c.ext1 = atoi(str); + SendCommand(&c, FALSE); +} + + // ## New command static void CmdHi14areader(char *str) @@ -214,6 +228,13 @@ static void CmdLegicRfSim(char *str) SendCommand(&c, FALSE); } +static void CmdLegicRfRead(char *str) +{ + UsbCommand c; + c.cmd = CMD_READER_LEGIC_RF; + SendCommand(&c, FALSE); +} + static void CmdFPGAOff(char *str) // ## FPGA Control { UsbCommand c; @@ -888,9 +909,12 @@ static void CmdHexsamples(char *str) { int i; int n; + int requested = atoi(str); + int delivered = 0; if(atoi(str) == 0) { n = 12; + requested = 12; } else { n = atoi(str)/4; } @@ -918,7 +942,12 @@ static void CmdHexsamples(char *str) c.d.asBytes[j+7], c.d.asBytes[j+8] ); + delivered += 8; + if(delivered >= requested) + break; } + if(delivered >= requested) + break; } } @@ -2841,13 +2870,13 @@ static void CmdSetMux(char *str) { UsbCommand c; c.cmd = CMD_SET_ADC_MUX; - if(strncasecmp(str, "lopkd", 5) == 0) { + if(strcmp(str, "lopkd") == 0) { c.ext1 = 0; - } else if(strncasecmp(str, "loraw", 5) == 0) { + } else if(strcmp(str, "loraw") == 0) { c.ext1 = 1; - } else if(strncasecmp(str, "hipkd", 5) == 0) { + } else if(strcmp(str, "hipkd") == 0) { c.ext1 = 2; - } else if(strncasecmp(str, "hiraw", 5) == 0) { + } else if(strcmp(str, "hiraw") == 0) { c.ext1 = 3; } SendCommand(&c, FALSE); @@ -2908,6 +2937,7 @@ static struct { {"lcd", CmdLcd, 0, " -- Send command/data to LCD"}, {"lcdreset", CmdLcdReset, 0, "Hardware reset LCD"}, {"legicrfsim", CmdLegicRfSim, 0, "Start the LEGIC RF tag simulator"}, + {"legicrfread", CmdLegicRfRead, 0, "Start the LEGIC RF reader"}, {"load", CmdLoad, 1, " -- Load trace (to graph window"}, {"locomread", CmdLoCommandRead, 0, " <'0' period> <'1' period> ['h'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'h' for 134)"}, {"loread", CmdLoread, 0, "['h'] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134)"}, @@ -2927,6 +2957,7 @@ static struct { {"setlfdivisor", CmdSetDivisor, 0, "<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"}, {"setmux", CmdSetMux, 0, " -- Set the ADC mux to a specific value"}, {"sri512read", CmdSri512read, 0, " -- Read contents of a SRI512 tag"}, + {"srix4kread", CmdSrix4kread, 0, " -- Read contents of a SRIX4K tag"}, {"tidemod", CmdTIDemod, 1, "Demodulate raw bits for TI-type LF tag"}, {"tiread", CmdTIRead, 0, "Read and decode a TI 134 kHz tag"}, {"tiwrite", CmdTIWrite, 0, "Write new data to a r/w TI 134 kHz tag"},