chg: 'hf felica litedump' - now turns off device when aborted via keyboard, or buttonpress

This commit is contained in:
iceman1001 2018-01-05 17:57:50 +01:00
parent 9a8331b882
commit 647d275d18
2 changed files with 11 additions and 4 deletions

View file

@ -587,8 +587,8 @@ void HfDumpFelicaLiteS() {
StartCountSspClk();
int c;
int cnt = 0;
int cntfails = 0;
bool isOK = false;
uint16_t cnt = 0, cntfails = 0;
uint8_t *dest = (uint8_t *)BigBuf_get_addr();
while (!BUTTON_PRESS() && !usb_poll_validate_length()) {
@ -628,6 +628,7 @@ void HfDumpFelicaLiteS() {
}
}
}
isOK = true;
break;
}
}
@ -639,5 +640,5 @@ void HfDumpFelicaLiteS() {
//setting tracelen - important! it was set by buffer overflow before
set_tracelen(cnt);
cmd_send(CMD_ACK, 1, cnt, 0, 0, 0);
cmd_send(CMD_ACK, isOK, cnt, 0, 0, 0);
}

View file

@ -331,7 +331,7 @@ int CmdHFFelicaDumpLite(const char *Cmd) {
if ( ctmp == 'h' || ctmp == 'H') return usage_hf_felica_dumplite();
PrintAndLog("[+] FeliCa lite - dump started");
PrintAndLog("[+] press pm3-button to cancel");
UsbCommand c = {CMD_FELICA_LITE_DUMP, {0,0,0}};
clearCommandBuffer();
SendCommand(&c);
@ -344,13 +344,19 @@ int CmdHFFelicaDumpLite(const char *Cmd) {
if (ukbhit()) {
int gc = getchar(); (void)gc;
printf("\n[!] aborted via keyboard!\n");
DropField();
return 1;
}
if (timeout > 100) {
PrintAndLog("[!] timeout while waiting for reply.");
DropField();
return 1;
}
}
if (resp.arg[0] == 0) {
PrintAndLog("\n[!] Button pressed. Aborted.");
return 1;
}
uint64_t tracelen = resp.arg[1];
uint8_t *trace = malloc(tracelen);