mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
chg: 'hf mf chkkeys' - now uses NG
This commit is contained in:
parent
7cc6975e52
commit
7454a4dcf2
5 changed files with 16 additions and 8 deletions
|
@ -949,7 +949,7 @@ static void PacketReceived(PacketCommandNG *packet) {
|
||||||
MifareNested(packet->oldarg[0], packet->oldarg[1], packet->oldarg[2], packet->data.asBytes);
|
MifareNested(packet->oldarg[0], packet->oldarg[1], packet->oldarg[2], packet->data.asBytes);
|
||||||
break;
|
break;
|
||||||
case CMD_MIFARE_CHKKEYS: {
|
case CMD_MIFARE_CHKKEYS: {
|
||||||
MifareChkKeys(packet->oldarg[0], packet->oldarg[1], packet->oldarg[2], packet->data.asBytes);
|
MifareChkKeys(packet->oldarg[0], packet->oldarg[1], packet->oldarg[2], packet->data.asBytes, packet->ng);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CMD_MIFARE_CHKKEYS_FAST: {
|
case CMD_MIFARE_CHKKEYS_FAST: {
|
||||||
|
|
|
@ -153,7 +153,7 @@ void MifareUWriteBlock(uint8_t arg0, uint8_t arg1, uint8_t *datain);
|
||||||
void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
||||||
void MifareAcquireEncryptedNonces(uint32_t arg0, uint32_t arg1, uint32_t flags, uint8_t *datain);
|
void MifareAcquireEncryptedNonces(uint32_t arg0, uint32_t arg1, uint32_t flags, uint8_t *datain);
|
||||||
void MifareAcquireNonces(uint32_t arg0, uint32_t arg1, uint32_t flags, uint8_t *datain);
|
void MifareAcquireNonces(uint32_t arg0, uint32_t arg1, uint32_t flags, uint8_t *datain);
|
||||||
void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain);
|
void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain, bool ng);
|
||||||
void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
||||||
void MifareSetDbgLvl(uint16_t arg0);
|
void MifareSetDbgLvl(uint16_t arg0);
|
||||||
void MifareEMemClr(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
void MifareEMemClr(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
||||||
|
|
|
@ -1516,7 +1516,7 @@ OUT:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) {
|
void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain, bool ng) {
|
||||||
|
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
|
|
||||||
|
@ -1592,8 +1592,13 @@ void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) {
|
||||||
}
|
}
|
||||||
|
|
||||||
LED_B_ON();
|
LED_B_ON();
|
||||||
reply_old(CMD_ACK, isOK, 0, 0, datain + i * 6, 6);
|
|
||||||
|
|
||||||
|
if (ng) {
|
||||||
|
reply_ng(CMD_MIFARE_CHKKEYS, PM3_SUCCESS, datain + i * 6, 6);
|
||||||
|
} else {
|
||||||
|
reply_mix(CMD_ACK, isOK, 0, 0, datain + i * 6, 6);
|
||||||
|
}
|
||||||
|
// reply_old(CMD_ACK, isOK, 0, 0, datain + i * 6, 6);
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
LEDsoff();
|
LEDsoff();
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,10 @@
|
||||||
-- Loads the commands-library
|
-- Loads the commands-library
|
||||||
local taglib = require('taglib')
|
local taglib = require('taglib')
|
||||||
local cmds = require('commands')
|
local cmds = require('commands')
|
||||||
local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
|
|
||||||
|
-- Shouldn't take longer than 2 seconds
|
||||||
|
local TIMEOUT = 2000
|
||||||
|
|
||||||
local ISO14A_COMMAND = {
|
local ISO14A_COMMAND = {
|
||||||
ISO14A_CONNECT = 1,
|
ISO14A_CONNECT = 1,
|
||||||
ISO14A_NO_DISCONNECT = 2,
|
ISO14A_NO_DISCONNECT = 2,
|
||||||
|
|
|
@ -84,11 +84,11 @@ local function checkBlock(blockno, testkeys, keytype)
|
||||||
core.clearCommandBuffer()
|
core.clearCommandBuffer()
|
||||||
|
|
||||||
print(("Testing block %d, keytype %d, with %d keys"):format(blockno, keytype, chunksize))
|
print(("Testing block %d, keytype %d, with %d keys"):format(blockno, keytype, chunksize))
|
||||||
local c = Command:newMIX{cmd = cmds.CMD_MIFARE_CHKKEYS,
|
local c = Command:newNG{cmd = cmds.CMD_MIFARE_CHKKEYS,
|
||||||
arg1 = arg1,
|
arg1 = arg1,
|
||||||
arg3 = chunksize,
|
arg3 = chunksize,
|
||||||
data = d1}
|
data = d1}
|
||||||
status, err = checkCommand(c:sendMIX(false, TIMEOUT))
|
status, err = checkCommand(c:sendNG(false, TIMEOUT))
|
||||||
|
|
||||||
if status then return status, blockno end
|
if status then return status, blockno end
|
||||||
start = start + chunksize
|
start = start + chunksize
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue