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)) {
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;
break;
}
- // start
-
PrintAndLog("Bruteforceing AWID %d Reader", fmtlen);
PrintAndLog("Press pm3-button to abort simulation or press key");
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 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;