]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlf.c
ADD: marshmellows new lf command and DetectClock. (works great!)
[proxmark3-svn] / client / cmdlf.c
index 2306121b36acbc73720624813ddf29d83288023a..97dcf0bae25a5c2ab26aa3f82ac50cd2c351e3b7 100644 (file)
@@ -20,6 +20,7 @@
 #include "cmdmain.h"
 #include "cmddata.h"
 #include "cmdlf.h"
+#include "cmdlfawid26.h"
 #include "cmdlfhid.h"
 #include "cmdlfti.h"
 #include "cmdlfem4x.h"
@@ -268,7 +269,7 @@ int CmdIndalaDemod(const char *Cmd)
     PrintAndLog("UID=%s (%x%08x%08x%08x%08x%08x%08x)", showbits, uid1, uid2, uid3, uid4, uid5, uid6, uid7);
   }
 
-  // Checking UID against next occurences
+  // Checking UID against next occurrences
   for (; i + uidlen <= rawbit;) {
     int failed = 0;
     for (bit = 0; bit < uidlen; bit++) {
@@ -282,7 +283,7 @@ int CmdIndalaDemod(const char *Cmd)
     }
     times += 1;
   }
-  PrintAndLog("Occurences: %d (expected %d)", times, (rawbit - start) / uidlen);
+  PrintAndLog("Occurrences: %d (expected %d)", times, (rawbit - start) / uidlen);
 
   // Remodulating for tag cloning
   GraphTraceLen = 32*uidlen;
@@ -363,11 +364,16 @@ int CmdLFRead(const char *Cmd)
   } else if (*Cmd == '\0') {
     c.arg[0] = 0;
   } else if (sscanf(Cmd, "%"lli, &c.arg[0]) != 1) {
-    PrintAndLog("use 'read' or 'read h', or 'read <divisor>'");
+    PrintAndLog("Samples 1: 'lf read'");
+       PrintAndLog("        2: 'lf read h'");
+       PrintAndLog("        3: 'lf read <divisor>'");
     return 0;
   }
   SendCommand(&c);
   WaitForResponse(CMD_ACK,NULL);
+  
+  // load samples 
+  CmdSamples("");
   return 0;
 }
 
@@ -388,7 +394,8 @@ static void ChkBitstream(const char *str)
 
 int CmdLFSim(const char *Cmd)
 {
-  int i;
+  int i,j;
+  
   static int gap;
 
   sscanf(Cmd, "%i", &gap);
@@ -396,18 +403,19 @@ int CmdLFSim(const char *Cmd)
   /* convert to bitstream if necessary */
   ChkBitstream(Cmd);
 
-  PrintAndLog("Sending data, please wait...");
-  for (i = 0; i < GraphTraceLen; i += 48) {
+  printf("Sending [%d bytes]", GraphTraceLen);
+  for (i = 0; i < GraphTraceLen; i += USB_CMD_DATA_SIZE) {
     UsbCommand c={CMD_DOWNLOADED_SIM_SAMPLES_125K, {i, 0, 0}};
-    int j;
-    for (j = 0; j < 48; j++) {
+
+    for (j = 0; j < USB_CMD_DATA_SIZE; j++) {
       c.d.asBytes[j] = GraphBuffer[i+j];
     }
     SendCommand(&c);
     WaitForResponse(CMD_ACK,NULL);
+       printf(".");
   }
-
-  PrintAndLog("Starting simulator...");
+  printf("\n");
+  PrintAndLog("Starting to simulate");
   UsbCommand c = {CMD_SIMULATE_TAG_125K, {GraphTraceLen, gap, 0}};
   SendCommand(&c);
   return 0;
@@ -566,7 +574,7 @@ static command_t CommandTable[] =
 
   {"flexdemod",   CmdFlexdemod,       1, "Demodulate samples for FlexPass"},
   {"indalademod", CmdIndalaDemod,     1, "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},
-  {"indalaclone", CmdIndalaClone,     1, "<UID> ['l']-- Clone Indala to T55x7 (tag must be in antenna)(UID in HEX)(option 'l' for 224 UID"},
+  {"indalaclone", CmdIndalaClone,     0, "<UID> ['l']-- Clone Indala to T55x7 (UID in HEX)(option 'l' for 224 UID"},
   {"vchdemod",    CmdVchDemod,        1, "['clone'] -- Demodulate samples for VeriChip"},
 
   
@@ -576,6 +584,7 @@ static command_t CommandTable[] =
   {"simman",      CmdLFSimManchester, 0, "<Clock> <Bitstream> [GAP] Simulate arbitrary Manchester LF tag"},
   {"snoop",       CmdLFSnoop,         0, "['l'|'h'|<divisor>] [trigger threshold]-- Snoop LF (l:125khz, h:134khz)"},
   
+  {"awid26",        CmdLFAWID26,        1, "{ AWID26 tags }"},
   {"em4x",        CmdLFEM4X,          1, "{ EM4X tags }"},      
   {"hid",         CmdLFHID,           1, "{ HID tags }"},
   {"hitag",       CmdLFHitag,         1, "{ Hitag tags and transponders }"},
Impressum, Datenschutz