From c86220246ef82c34a76e7cae4eb83556fcdfd30b Mon Sep 17 00:00:00 2001 From: penturalabs Date: Fri, 21 Mar 2014 07:45:18 +0000 Subject: [PATCH 1/1] Sorry, included missing files from last pull request --- client/cmdlfio.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ client/cmdlfio.h | 18 ++++++++++ 2 files changed, 107 insertions(+) create mode 100644 client/cmdlfio.c create mode 100644 client/cmdlfio.h diff --git a/client/cmdlfio.c b/client/cmdlfio.c new file mode 100644 index 00000000..a3d79b2b --- /dev/null +++ b/client/cmdlfio.c @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#include +//#include "proxusb.h" +#include "proxmark3.h" +#include "data.h" +#include "graph.h" +#include "ui.h" +#include "cmdparser.h" +#include "cmdmain.h" +#include "cmddata.h" +#include "cmdlf.h" + +static int CmdHelp(const char *Cmd); + +int CmdIODemodFSK(const char *Cmd) +{ + UsbCommand c={CMD_IO_DEMOD_FSK}; + SendCommand(&c); + return 0; +} + + +int CmdIOProxDemod(const char *Cmd){ + if (GraphTraceLen < 4800) { + PrintAndLog("too short; need at least 4800 samples"); + return 0; + } + + GraphTraceLen = 4800; + for (int i = 0; i < GraphTraceLen; ++i) { + if (GraphBuffer[i] < 0) { + GraphBuffer[i] = 0; + } else { + GraphBuffer[i] = 1; + } + } + RepaintGraphWindow(); + return 0; +} + +int CmdIOClone(const char *Cmd) +{ + unsigned int hi = 0, lo = 0; + int n = 0, i = 0; + UsbCommand c; + + + //if (1 == sscanf(str, "0x%"SCNx32, &hi)) { + // value now contains the value in the string--decimal 255, in this case. + //} + + while (sscanf(&Cmd[i++], "%1x", &n ) == 1) { + hi = (hi << 4) | (lo >> 28); + lo = (lo << 4) | (n & 0xf); + } + + PrintAndLog("Cloning tag with ID %08x %08x", hi, lo); + + c.cmd = CMD_IO_CLONE_TAG; + c.arg[0] = hi; + c.arg[1] = lo; + + SendCommand(&c); + return 0; +} + +static command_t CommandTable[] = +{ + {"help", CmdHelp, 1, "This help"}, + {"demod", CmdIOProxDemod, 1, "Demodulate Stream"}, + {"fskdemod", CmdIODemodFSK, 1, "Demodulate ioProx Tag"}, + {"clone", CmdIOClone, 1, "Clone ioProx Tag"}, + {NULL, NULL, 0, NULL} +}; + +int CmdLFIO(const char *Cmd) +{ + CmdsParse(CommandTable, Cmd); + return 0; +} + +int CmdHelp(const char *Cmd) +{ + CmdsHelp(CommandTable); + return 0; +} \ No newline at end of file diff --git a/client/cmdlfio.h b/client/cmdlfio.h new file mode 100644 index 00000000..80d71a12 --- /dev/null +++ b/client/cmdlfio.h @@ -0,0 +1,18 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2010 iZsh +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Low frequency EM4x commands +//----------------------------------------------------------------------------- + +#ifndef CMDLFIO_H__ +#define CMDLFIO_H__ + +int CmdLFIO(const char *Cmd); + +int CmdIODemodFSK(const char *Cmd); + +#endif \ No newline at end of file -- 2.39.5