X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/52ab55ab0da1a34f4ce62d2f730e39ac099d0555..04d2721b3c7c4113e627d3f953835bde932065db:/client/cmdlf.c diff --git a/client/cmdlf.c b/client/cmdlf.c index 41dcca57..07a8750f 100644 --- a/client/cmdlf.c +++ b/client/cmdlf.c @@ -19,6 +19,7 @@ #include "cmdparser.h" #include "cmdmain.h" #include "cmddata.h" +#include "util.h" #include "cmdlf.h" #include "cmdlfhid.h" #include "cmdlfti.h" @@ -380,16 +381,14 @@ static void ChkBitstream(const char *str) int i; /* convert to bitstream if necessary */ - for (i = 0; i < (int)(GraphTraceLen / 2); i++) - { - if (GraphBuffer[i] > 1 || GraphBuffer[i] < 0) - { + for (i = 0; i < (int)(GraphTraceLen / 2); i++){ + if (GraphBuffer[i] > 1 || GraphBuffer[i] < 0) { CmdBitstream(str); break; } } } - +//appears to attempt to simulate manchester int CmdLFSim(const char *Cmd) { int i,j; @@ -466,8 +465,11 @@ int CmdLFSnoop(const char *Cmd) sscanf(Cmd, "h %"lli, &c.arg[1]); } else if (sscanf(Cmd, "%"lli" %"lli, &c.arg[0], &c.arg[1]) < 1) { PrintAndLog("usage 1: snoop"); - PrintAndLog(" 2: snoop {l,h} [trigger threshold]"); + PrintAndLog(" 2: snoop [trigger threshold]"); PrintAndLog(" 3: snoop [trigger threshold]"); + PrintAndLog(""); + PrintAndLog("Sample: lf snoop l 200"); + PrintAndLog(" : lf snoop 95 200"); return 0; } @@ -556,23 +558,63 @@ int CmdVchDemod(const char *Cmd) int CmdLFfind(const char *Cmd) { int ans=0; - if (!offline){ + char cmdp = param_getchar(Cmd, 0); + + if (strlen(Cmd) > 1 || cmdp == 'h' || cmdp == 'H') { + PrintAndLog("Usage: lf search <0|1>"); + PrintAndLog(" , if not set, try reading data from tag."); + PrintAndLog(""); + PrintAndLog(" sample: lf search"); + PrintAndLog(" : lf search 1"); + return 0; + } + + if (!offline && (cmdp != '1')){ ans=CmdLFRead(""); ans=CmdSamples("20000"); + } else if (GraphTraceLen < 1000) { + PrintAndLog("Data in Graphbuffer was too small."); + return 0; } - if (GraphTraceLen<1000) return 0; - PrintAndLog("Checking for known tags:"); - ans=Cmdaskmandemod(""); - if (ans>0) return 1; - ans=CmdFSKdemodHID(""); - if (ans>0) return 1; + + PrintAndLog("NOTE: some demods output possible binary\n if it finds something that looks like a tag"); + PrintAndLog("\nChecking for known tags:\n"); ans=CmdFSKdemodIO(""); - if (ans>0) return 1; + if (ans>0) { + PrintAndLog("\nValid IO Prox ID Found!"); + return 1; + } + ans=CmdFSKdemodPyramid(""); + if (ans>0) { + PrintAndLog("\nValid Pyramid ID Found!"); + return 1; + } + ans=CmdFSKdemodParadox(""); + if (ans>0) { + PrintAndLog("\nValid Paradox ID Found!"); + return 1; + } + ans=CmdFSKdemodAWID(""); + if (ans>0) { + PrintAndLog("\nValid AWID ID Found!"); + return 1; + } + ans=CmdFSKdemodHID(""); + if (ans>0) { + PrintAndLog("\nValid HID Prox ID Found!"); + return 1; + } //add psk and indala - ans=CmdIndalaDemod(""); - if (ans>0) return 1; - ans=CmdIndalaDemod("224"); - if (ans>0) return 1; + ans=CmdIndalaDecode(""); + if (ans>0) { + PrintAndLog("\nValid Indala ID Found!"); + return 1; + } + ans=Cmdaskmandemod(""); + if (ans>0) { + PrintAndLog("\nValid EM410x ID Found!"); + return 1; + } PrintAndLog("No Known Tags Found!\n"); return 0; }