mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 05:13:46 -07:00
fix: some more adaptations
This commit is contained in:
parent
0c8ead0bd6
commit
3a18fe6ea1
1 changed files with 19 additions and 8 deletions
|
@ -919,7 +919,7 @@ void MifareNested(uint8_t blockNo, uint8_t keyType, uint8_t targetBlockNo, uint8
|
||||||
for (rtr = 0; rtr < 17; rtr++) {
|
for (rtr = 0; rtr < 17; rtr++) {
|
||||||
|
|
||||||
// Test if the action was cancelled
|
// Test if the action was cancelled
|
||||||
if (BUTTON_PRESS() || usb_poll_validate_length()) {
|
if (BUTTON_PRESS() || data_available()) {
|
||||||
isOK = -2;
|
isOK = -2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1000,7 +1000,7 @@ void MifareNested(uint8_t blockNo, uint8_t keyType, uint8_t targetBlockNo, uint8
|
||||||
while (target_nt[i] == 0) { // continue until we have an unambiguous nonce
|
while (target_nt[i] == 0) { // continue until we have an unambiguous nonce
|
||||||
|
|
||||||
// Test if the action was cancelled
|
// Test if the action was cancelled
|
||||||
if (BUTTON_PRESS() || usb_poll_validate_length()) {
|
if (BUTTON_PRESS() || data_available()) {
|
||||||
isOK = -2;
|
isOK = -2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1274,6 +1274,8 @@ void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *da
|
||||||
static uint8_t found[80];
|
static uint8_t found[80];
|
||||||
static uint8_t *uid;
|
static uint8_t *uid;
|
||||||
|
|
||||||
|
int oldbg = DBGLEVEL;
|
||||||
|
|
||||||
#ifdef WITH_FLASH
|
#ifdef WITH_FLASH
|
||||||
if (use_flashmem) {
|
if (use_flashmem) {
|
||||||
BigBuf_free();
|
BigBuf_free();
|
||||||
|
@ -1341,6 +1343,9 @@ void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *da
|
||||||
CHK_TIMEOUT();
|
CHK_TIMEOUT();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clear debug level. We are expecting lots of authentication failures...
|
||||||
|
DBGLEVEL = DBG_NONE;
|
||||||
|
|
||||||
// set check struct.
|
// set check struct.
|
||||||
chk_data.uid = uid;
|
chk_data.uid = uid;
|
||||||
chk_data.cuid = cuid;
|
chk_data.cuid = cuid;
|
||||||
|
@ -1365,7 +1370,7 @@ void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *da
|
||||||
for (uint16_t i = s_point; i < keyCount; ++i) {
|
for (uint16_t i = s_point; i < keyCount; ++i) {
|
||||||
|
|
||||||
// Allow button press / usb cmd to interrupt device
|
// Allow button press / usb cmd to interrupt device
|
||||||
if (BUTTON_PRESS() && !data_available()) {
|
if (BUTTON_PRESS() && data_available()) {
|
||||||
goto OUT;
|
goto OUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1457,7 +1462,7 @@ void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *da
|
||||||
for (uint16_t i = 0; i < keyCount; i++) {
|
for (uint16_t i = 0; i < keyCount; i++) {
|
||||||
|
|
||||||
// Allow button press / usb cmd to interrupt device
|
// Allow button press / usb cmd to interrupt device
|
||||||
if (BUTTON_PRESS() && !data_available()) break;
|
if (BUTTON_PRESS() && data_available()) break;
|
||||||
|
|
||||||
// found all keys?
|
// found all keys?
|
||||||
if (foundkeys == allkeys)
|
if (foundkeys == allkeys)
|
||||||
|
@ -1566,16 +1571,16 @@ OUT:
|
||||||
|
|
||||||
emlSetMem_xt(block, blockno, 1, sizeof(block));
|
emlSetMem_xt(block, blockno, 1, sizeof(block));
|
||||||
}
|
}
|
||||||
int oldbg = DBGLEVEL;
|
|
||||||
DBGLEVEL = DBG_NONE;
|
|
||||||
MifareECardLoad(sectorcnt, 0);
|
MifareECardLoad(sectorcnt, 0);
|
||||||
MifareECardLoad(sectorcnt, 1);
|
MifareECardLoad(sectorcnt, 1);
|
||||||
DBGLEVEL = oldbg;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// partial/none keys found
|
// partial/none keys found
|
||||||
reply_mix(CMD_ACK, foundkeys, 0, 0, 0, 0);
|
reply_mix(CMD_ACK, foundkeys, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DBGLEVEL = oldbg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MifareChkKeys(uint8_t *datain) {
|
void MifareChkKeys(uint8_t *datain) {
|
||||||
|
@ -1614,7 +1619,10 @@ void MifareChkKeys(uint8_t *datain) {
|
||||||
if (clearTrace)
|
if (clearTrace)
|
||||||
clear_trace();
|
clear_trace();
|
||||||
|
|
||||||
set_tracing(true);
|
int oldbg = DBGLEVEL;
|
||||||
|
DBGLEVEL = DBG_NONE;
|
||||||
|
|
||||||
|
set_tracing(false);
|
||||||
|
|
||||||
for (i = 0; i < keyCount; i++) {
|
for (i = 0; i < keyCount; i++) {
|
||||||
|
|
||||||
|
@ -1655,6 +1663,7 @@ void MifareChkKeys(uint8_t *datain) {
|
||||||
|
|
||||||
if (res)
|
if (res)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
memcpy(keyresult.key, datain + i * 6, 6);
|
memcpy(keyresult.key, datain + i * 6, 6);
|
||||||
keyresult.found = true;
|
keyresult.found = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1668,6 +1677,8 @@ void MifareChkKeys(uint8_t *datain) {
|
||||||
|
|
||||||
set_tracing(false);
|
set_tracing(false);
|
||||||
crypto1_deinit(pcs);
|
crypto1_deinit(pcs);
|
||||||
|
|
||||||
|
DBGLEVEL = oldbg;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue