mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-03-21 12:37:21 +08:00
commit
0a019bd702
1 changed files with 21 additions and 15 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue