Merge pull request #578 from capnkrunchy/master

Fix lf hid brute
This commit is contained in:
Iceman 2020-02-27 18:32:58 +01:00 committed by GitHub
commit 0a019bd702
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -369,9 +369,11 @@ static int CmdHIDBrute(const char *Cmd) {
uint8_t cmdp = 0; uint8_t cmdp = 0;
int format_idx = -1; int format_idx = -1;
char format[16] = {0}; char format[16] = {0};
wiegand_card_t data; wiegand_card_t datahi;
memset(&data, 0, sizeof(wiegand_card_t)); memset(&datahi, 0, sizeof(wiegand_card_t));
wiegand_card_t datalo;
memset(&datalo, 0, sizeof(wiegand_card_t));
while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) {
switch (tolower(param_getchar(Cmd, cmdp))) { switch (tolower(param_getchar(Cmd, cmdp))) {
case 'h': case 'h':
@ -386,7 +388,8 @@ static int CmdHIDBrute(const char *Cmd) {
cmdp += 2; cmdp += 2;
break; break;
case 'c': case 'c':
data.CardNumber = param_get32ex(Cmd, cmdp + 1, 0, 10); datahi.CardNumber = param_get32ex(Cmd, cmdp + 1, 0, 10);
datalo.CardNumber = param_get32ex(Cmd, cmdp + 1, 0, 10);
cmdp += 2; cmdp += 2;
break; break;
case 'd': case 'd':
@ -395,15 +398,18 @@ static int CmdHIDBrute(const char *Cmd) {
cmdp += 2; cmdp += 2;
break; break;
case 'f': case 'f':
data.FacilityCode = param_get32ex(Cmd, cmdp + 1, 0, 10); datahi.FacilityCode = param_get32ex(Cmd, cmdp + 1, 0, 10);
datalo.FacilityCode = param_get32ex(Cmd, cmdp + 1, 0, 10);
cmdp += 2; cmdp += 2;
break; break;
case 'i': case 'i':
data.IssueLevel = param_get32ex(Cmd, cmdp + 1, 0, 10); datahi.IssueLevel = param_get32ex(Cmd, cmdp + 1, 0, 10);
datalo.IssueLevel = param_get32ex(Cmd, cmdp + 1, 0, 10);
cmdp += 2; cmdp += 2;
break; break;
case 'o': case 'o':
data.OEM = param_get32ex(Cmd, cmdp + 1, 0, 10); datahi.OEM = param_get32ex(Cmd, cmdp + 1, 0, 10);
datalo.OEM = param_get32ex(Cmd, cmdp + 1, 0, 10);
cmdp += 2; cmdp += 2;
break; break;
case 'v': case 'v':
@ -435,15 +441,15 @@ static int CmdHIDBrute(const char *Cmd) {
} }
// Do one up // Do one up
if (data.CardNumber < 0xFFFF) { if (datahi.CardNumber < 0xFFFF) {
data.CardNumber++; datahi.CardNumber++;
if (sendTry(format_idx, &data, delay, verbose) != PM3_SUCCESS) return PM3_ESOFT; if (sendTry(format_idx, &datahi, delay, verbose) != PM3_SUCCESS) return PM3_ESOFT;
} }
// Do one down (if cardnumber is given) // Do one up
if (data.CardNumber > 1) { if (datalo.CardNumber > 1) {
data.CardNumber--; datalo.CardNumber--;
if (sendTry(format_idx, &data, delay, verbose) != PM3_SUCCESS) return PM3_ESOFT; if (sendTry(format_idx, &datalo, delay, verbose) != PM3_SUCCESS) return PM3_ESOFT;
} }
} }
return PM3_SUCCESS; return PM3_SUCCESS;