]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlf.c
SUGGESTED FIX:
[proxmark3-svn] / client / cmdlf.c
index 41dcca5746fbb93e607c6030f833ad3211371453..491fd082fe09edf15c647fc5fb7b5463f1678e96 100644 (file)
@@ -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,10 +381,8 @@ 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;
     }
@@ -466,7 +465,7 @@ 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 <l|h> [trigger threshold]");
                PrintAndLog("      3:  snoop <divisor> [trigger threshold]");
     return 0;
   }
@@ -556,23 +555,48 @@ 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("     <use data from Graphbuffer>, 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("NOTE: some demods output possible binary\n  if it finds something that looks like a tag");
   PrintAndLog("Checking for known tags:");
-  ans=Cmdaskmandemod("");
-  if (ans>0) return 1;
-  ans=CmdFSKdemodHID("");
-  if (ans>0) return 1;
   ans=CmdFSKdemodIO("");
-  if (ans>0) return 1;
+  if (ans>0) {
+    PrintAndLog("Valid IO Prox ID Found!");
+    return 1;
+  }
+  ans=CmdFSKdemodHID("");
+  if (ans>0) {
+    PrintAndLog("Valid 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("0");
+  if (ans>0) {
+    PrintAndLog("Valid Indala ID Found!");
+    return 1;
+  }
+  ans=Cmdaskmandemod("");
+  if (ans>0) {
+    PrintAndLog("Valid EM410x ID Found!");
+    return 1;
+  }
   PrintAndLog("No Known Tags Found!\n");
   return 0;
 }
Impressum, Datenschutz