X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/10c4231ec76454eb691539fcb197d27585e1ef59..2a1a6aa38260b85589ed39a4cde4a8a25052d379:/client/cmdlfawid.c?ds=sidebyside diff --git a/client/cmdlfawid.c b/client/cmdlfawid.c index 676a18c1..fefc6e0a 100644 --- a/client/cmdlfawid.c +++ b/client/cmdlfawid.c @@ -7,19 +7,9 @@ // 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 // sscanf -#include "proxmark3.h" // Definitions, USB controls, etc -#include "ui.h" // PrintAndLog -#include "cmdparser.h" // CmdsParse, CmdsHelp #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); @@ -94,7 +84,19 @@ int usage_lf_awid_brute(void){ 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)) { @@ -109,20 +111,10 @@ static boolean sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, clearCommandBuffer(); SendCommand(&c); msleep(delay); + sendPing(); 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; @@ -366,8 +358,6 @@ int CmdAWIDBrute(const char *Cmd){ break; } - // start - 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 (;;){ - 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 ) @@ -384,7 +381,7 @@ int CmdAWIDBrute(const char *Cmd){ // 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;