mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-22 22:23:38 -07:00
extract mifare default keys into separate module
This commit is contained in:
parent
5e2dd545b6
commit
f8d7402189
3 changed files with 43 additions and 36 deletions
|
@ -686,21 +686,9 @@ int CmdHF14AMfNested(const char *Cmd)
|
||||||
if (e_sector == NULL) return 1;
|
if (e_sector == NULL) return 1;
|
||||||
|
|
||||||
//test current key and additional standard keys first
|
//test current key and additional standard keys first
|
||||||
memcpy(keyBlock, key, 6);
|
for (int defaultKeyCounter = 0; defaultKeyCounter < MifareDefaultKeysSize; defaultKeyCounter++){
|
||||||
num_to_bytes(0xffffffffffff, 6, (uint8_t*)(keyBlock + 1 * 6));
|
num_to_bytes(MifareDefaultKeys[defaultKeyCounter], 6, (uint8_t*)(keyBlock + defaultKeyCounter * 6));
|
||||||
num_to_bytes(0x000000000000, 6, (uint8_t*)(keyBlock + 2 * 6));
|
}
|
||||||
num_to_bytes(0xa0a1a2a3a4a5, 6, (uint8_t*)(keyBlock + 3 * 6));
|
|
||||||
num_to_bytes(0xb0b1b2b3b4b5, 6, (uint8_t*)(keyBlock + 4 * 6));
|
|
||||||
num_to_bytes(0xaabbccddeeff, 6, (uint8_t*)(keyBlock + 5 * 6));
|
|
||||||
num_to_bytes(0x4d3a99c351dd, 6, (uint8_t*)(keyBlock + 6 * 6));
|
|
||||||
num_to_bytes(0x1a982c7e459a, 6, (uint8_t*)(keyBlock + 7 * 6));
|
|
||||||
num_to_bytes(0xd3f7d3f7d3f7, 6, (uint8_t*)(keyBlock + 8 * 6));
|
|
||||||
num_to_bytes(0x714c5c886e97, 6, (uint8_t*)(keyBlock + 9 * 6));
|
|
||||||
num_to_bytes(0x587ee5f9350f, 6, (uint8_t*)(keyBlock + 10 * 6));
|
|
||||||
num_to_bytes(0xa0478cc39091, 6, (uint8_t*)(keyBlock + 11 * 6));
|
|
||||||
num_to_bytes(0x533cb6c723f6, 6, (uint8_t*)(keyBlock + 12 * 6));
|
|
||||||
num_to_bytes(0x8fd0a4f256e9, 6, (uint8_t*)(keyBlock + 13 * 6));
|
|
||||||
num_to_bytes(0x1a2b3c4d5e6f, 6, (uint8_t*)(keyBlock + 14 * 6));
|
|
||||||
|
|
||||||
PrintAndLog("Testing known keys. Sector count=%d", SectorsCnt);
|
PrintAndLog("Testing known keys. Sector count=%d", SectorsCnt);
|
||||||
for (i = 0; i < SectorsCnt; i++) {
|
for (i = 0; i < SectorsCnt; i++) {
|
||||||
|
@ -1053,27 +1041,9 @@ int CmdHF14AMfChk(const char *Cmd)
|
||||||
keyBlock = calloc(stKeyBlock, 6);
|
keyBlock = calloc(stKeyBlock, 6);
|
||||||
if (keyBlock == NULL) return 1;
|
if (keyBlock == NULL) return 1;
|
||||||
|
|
||||||
uint64_t defaultKeys[] =
|
int defaultKeysSize = MifareDefaultKeysSize;
|
||||||
{
|
for (int defaultKeyCounter = 0; defaultKeyCounter < defaultKeysSize; defaultKeyCounter++){
|
||||||
0xffffffffffff, // Default key (first key used by program if no user defined key)
|
num_to_bytes(MifareDefaultKeys[defaultKeyCounter], 6, (uint8_t*)(keyBlock + defaultKeyCounter * 6));
|
||||||
0x000000000000, // Blank key
|
|
||||||
0xa0a1a2a3a4a5, // NFCForum MAD key
|
|
||||||
0xb0b1b2b3b4b5,
|
|
||||||
0xaabbccddeeff,
|
|
||||||
0x4d3a99c351dd,
|
|
||||||
0x1a982c7e459a,
|
|
||||||
0xd3f7d3f7d3f7,
|
|
||||||
0x714c5c886e97,
|
|
||||||
0x587ee5f9350f,
|
|
||||||
0xa0478cc39091,
|
|
||||||
0x533cb6c723f6,
|
|
||||||
0x8fd0a4f256e9
|
|
||||||
};
|
|
||||||
int defaultKeysSize = sizeof(defaultKeys) / sizeof(uint64_t);
|
|
||||||
|
|
||||||
for (int defaultKeyCounter = 0; defaultKeyCounter < defaultKeysSize; defaultKeyCounter++)
|
|
||||||
{
|
|
||||||
num_to_bytes(defaultKeys[defaultKeyCounter], 6, (uint8_t*)(keyBlock + defaultKeyCounter * 6));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (param_getchar(Cmd, 0)=='*') {
|
if (param_getchar(Cmd, 0)=='*') {
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
#ifndef CMDHFMF_H__
|
#ifndef CMDHFMF_H__
|
||||||
#define CMDHFMF_H__
|
#define CMDHFMF_H__
|
||||||
|
|
||||||
|
#include "mifaredefault.h"
|
||||||
|
|
||||||
extern int CmdHFMF(const char *Cmd);
|
extern int CmdHFMF(const char *Cmd);
|
||||||
|
|
||||||
extern int CmdHF14AMfDbg(const char* cmd);
|
extern int CmdHF14AMfDbg(const char* cmd);
|
||||||
|
|
35
client/mifaredefault.h
Normal file
35
client/mifaredefault.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Copyright (C) 2017 Merlok
|
||||||
|
//
|
||||||
|
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||||
|
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||||
|
// the license.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Mifare default constants
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef MIFAREDEFAULT_H__
|
||||||
|
#define MIFAREDEFAULT_H__
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
#define MifareDefaultKeysSize sizeof(MifareDefaultKeys) / sizeof(uint64_t)
|
||||||
|
|
||||||
|
static const uint64_t MifareDefaultKeys[] =
|
||||||
|
{
|
||||||
|
0xffffffffffff, // Default key (first key used by program if no user defined key)
|
||||||
|
0x000000000000, // Blank key
|
||||||
|
0xa0a1a2a3a4a5, // NFCForum MAD key
|
||||||
|
0xb0b1b2b3b4b5,
|
||||||
|
0xaabbccddeeff,
|
||||||
|
0x4d3a99c351dd,
|
||||||
|
0x1a982c7e459a,
|
||||||
|
0xd3f7d3f7d3f7,
|
||||||
|
0x714c5c886e97,
|
||||||
|
0x587ee5f9350f,
|
||||||
|
0xa0478cc39091,
|
||||||
|
0x533cb6c723f6,
|
||||||
|
0x8fd0a4f256e9
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Add table
Add a link
Reference in a new issue