mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
ADD: Added the possibility to exit the bruteforce mode (either rangesearch or file) with the keyboard.
FIX: if not found, the range search printed wrong number.
This commit is contained in:
parent
3f26796673
commit
d08faa4e02
2 changed files with 18 additions and 8 deletions
|
@ -61,7 +61,7 @@ start:
|
||||||
case -2 : PrintAndLog("Card is not vulnerable to Darkside attack (doesn't send NACK on authentication requests).\n"); break;
|
case -2 : PrintAndLog("Card is not vulnerable to Darkside attack (doesn't send NACK on authentication requests).\n"); break;
|
||||||
case -3 : PrintAndLog("Card is not vulnerable to Darkside attack (its random number generator is not predictable).\n"); break;
|
case -3 : PrintAndLog("Card is not vulnerable to Darkside attack (its random number generator is not predictable).\n"); break;
|
||||||
case -4 : PrintAndLog("Card is not vulnerable to Darkside attack (its random number generator seems to be based on the wellknown");
|
case -4 : PrintAndLog("Card is not vulnerable to Darkside attack (its random number generator seems to be based on the wellknown");
|
||||||
PrintAndLog("generating polynomial with 16 effective bits only, but shows unexpected behaviour.\n"); break;
|
PrintAndLog("generating polynomial with 16 effective bits only, but shows unexpected behaviour.\n"); break;
|
||||||
default: ;
|
default: ;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1394,6 +1394,12 @@ int CmdT55xxBruteForce(const char *Cmd) {
|
||||||
uint64_t testpwd = 0x00;
|
uint64_t testpwd = 0x00;
|
||||||
for (uint16_t c = 0; c < keycnt; ++c ) {
|
for (uint16_t c = 0; c < keycnt; ++c ) {
|
||||||
|
|
||||||
|
if (ukbhit()) {
|
||||||
|
getchar();
|
||||||
|
printf("\naborted via keyboard!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
testpwd = bytes_to_num(keyBlock + 4*c, 4);
|
testpwd = bytes_to_num(keyBlock + 4*c, 4);
|
||||||
|
|
||||||
PrintAndLog("Testing %08X", testpwd);
|
PrintAndLog("Testing %08X", testpwd);
|
||||||
|
@ -1423,23 +1429,27 @@ int CmdT55xxBruteForce(const char *Cmd) {
|
||||||
|
|
||||||
if ( start_password >= end_password ) return usage_t55xx_bruteforce();
|
if ( start_password >= end_password ) return usage_t55xx_bruteforce();
|
||||||
|
|
||||||
PrintAndLog("Search password range [%08X -> %08X]", start_password, end_password);
|
PrintAndLog("Search password range [%08X -> %08X]", start_password, end_password);
|
||||||
|
|
||||||
uint32_t i = start_password;
|
uint32_t i = start_password;
|
||||||
|
|
||||||
while ((!found) && (i <= end_password)){
|
while ((!found) && (i <= end_password)){
|
||||||
|
|
||||||
|
printf(".");
|
||||||
|
fflush(stdout);
|
||||||
|
if (ukbhit()) {
|
||||||
|
getchar();
|
||||||
|
printf("\naborted via keyboard!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, TRUE, i)) {
|
if (!AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, TRUE, i)) {
|
||||||
PrintAndLog("Aquireing data from device failed. Quitting");
|
PrintAndLog("Aquireing data from device failed. Quitting");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
found = tryDetectModulation();
|
found = tryDetectModulation();
|
||||||
|
|
||||||
if (found)
|
if (found) break;
|
||||||
break;
|
|
||||||
|
|
||||||
if ((i % 0x100) == 0) printf("[%08x], ",i);
|
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1448,7 +1458,7 @@ int CmdT55xxBruteForce(const char *Cmd) {
|
||||||
if (found)
|
if (found)
|
||||||
PrintAndLog("Found valid password: [%08x]", i);
|
PrintAndLog("Found valid password: [%08x]", i);
|
||||||
else
|
else
|
||||||
PrintAndLog("Password NOT found. Last tried: [%08x]", i);
|
PrintAndLog("Password NOT found. Last tried: [%08x]", --i);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue