]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfawid.c
CHG: reading a complete MIM1024 takes about 2.8sec. This timeout is changed to 3sec...
[proxmark3-svn] / client / cmdlfawid.c
index 676a18c1ed92098f4388fe51bb37912282c3de6f..fefc6e0af1a2b6a15d921ddb81668f1ae5bdf231 100644 (file)
@@ -7,19 +7,9 @@
 // at your option, any later version. See the LICENSE.txt file for the text of
 // the license.
 //-----------------------------------------------------------------------------
 // at your option, any later version. See the LICENSE.txt file for the text of
 // the license.
 //-----------------------------------------------------------------------------
-// Low frequency AWID26 commands
+// Low frequency AWID26/50 commands
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-
-#include <stdio.h>      // sscanf
-#include "proxmark3.h"  // Definitions, USB controls, etc
-#include "ui.h"         // PrintAndLog
-#include "cmdparser.h"  // CmdsParse, CmdsHelp
 #include "cmdlfawid.h"  // AWID function declarations
 #include "cmdlfawid.h"  // AWID function declarations
-#include "lfdemod.h"    // parityTest
-#include "util.h"       // weigandparity
-#include "protocols.h"  // for T55xx config register definitions
-#include "cmdmain.h"
-#include "sleep.h"
  
 static int CmdHelp(const char *Cmd);
 
  
 static int CmdHelp(const char *Cmd);
 
@@ -94,7 +84,19 @@ int usage_lf_awid_brute(void){
        return 0;
 }
 
        return 0;
 }
 
-static boolean sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, uint8_t *bs, size_t bs_len){
+static int sendPing(void){
+       UsbCommand ping = {CMD_PING, {1, 2, 3}};
+       SendCommand(&ping);
+       SendCommand(&ping);     
+       SendCommand(&ping);     
+       clearCommandBuffer();
+       UsbCommand resp;
+       if (WaitForResponseTimeout(CMD_ACK, &resp, 1000))
+               return 0;
+       return 1;
+}
+
+static bool sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, uint8_t *bs, size_t bs_len){
 
        PrintAndLog("Trying FC: %u; CN: %u", fc, cn);           
        if ( !getAWIDBits(fmtlen, fc, cn, bs)) {
 
        PrintAndLog("Trying FC: %u; CN: %u", fc, cn);           
        if ( !getAWIDBits(fmtlen, fc, cn, bs)) {
@@ -109,20 +111,10 @@ static boolean sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay,
        clearCommandBuffer();
        SendCommand(&c);
        msleep(delay);
        clearCommandBuffer();
        SendCommand(&c);
        msleep(delay);
+       sendPing();
        return TRUE;
 }
        return TRUE;
 }
-static int sendPing(){
-       UsbCommand resp;
-       UsbCommand ping = {CMD_PING};
-       clearCommandBuffer();
-       SendCommand(&ping);
-       if (WaitForResponseTimeout(CMD_ACK, &resp, 1000)) {
-               PrintAndLog("aborted via keyboard!");
-               return 0;
-       }
-       PrintAndLog("Device didnt respond to ABORT");   
-       return 1;
-}
+
 
 int CmdAWIDDemodFSK(const char *Cmd) {
        int findone = 0;
 
 int CmdAWIDDemodFSK(const char *Cmd) {
        int findone = 0;
@@ -366,8 +358,6 @@ int CmdAWIDBrute(const char *Cmd){
                        break;
        }
        
                        break;
        }
        
-       // start
-       
        PrintAndLog("Bruteforceing AWID %d Reader", fmtlen);
        PrintAndLog("Press pm3-button to abort simulation or press key");
 
        PrintAndLog("Bruteforceing AWID %d Reader", fmtlen);
        PrintAndLog("Press pm3-button to abort simulation or press key");
 
@@ -376,7 +366,14 @@ int CmdAWIDBrute(const char *Cmd){
        
        for (;;){
        
        
        for (;;){
        
-               if (ukbhit()) return sendPing();
+               if ( offline ) {
+                       printf("Device offline\n");
+                       return  2;
+               }
+               if (ukbhit()) {
+                       PrintAndLog("aborted via keyboard!");
+                       return sendPing();
+               }
                
                // Do one up
                if ( up < 0xFFFF )
                
                // Do one up
                if ( up < 0xFFFF )
@@ -384,7 +381,7 @@ int CmdAWIDBrute(const char *Cmd){
                
                // Do one down  (if cardnumber is given)
                if ( cn > 1 )
                
                // Do one down  (if cardnumber is given)
                if ( cn > 1 )
-                       if ( down > 0 )
+                       if ( down > 1 )
                                if ( !sendTry(fmtlen, fc, --down, delay, bs, size)) return 1;
        }
        return 0;
                                if ( !sendTry(fmtlen, fc, --down, delay, bs, size)) return 1;
        }
        return 0;
Impressum, Datenschutz