1 //-----------------------------------------------------------------------------
2 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // See LICENSE.txt for the text of the license.
15 //-----------------------------------------------------------------------------
16 // High frequency MIFARE commands
17 //-----------------------------------------------------------------------------
23 #include "mifare/mfkey.h"
24 #include "mifare/mifarehost.h" // structs
26 int CmdHFMF(const char *Cmd
);
27 int CmdHF14AMfELoad(const char *Cmd
); // used by "hf mfu eload"
28 int CmdHF14AMfDbg(const char *Cmd
); // used by "hf mfu dbg"
29 int CmdHFMFNDEFRead(const char *Cmd
); // used by "nfc mf cread"
30 int CmdHFMFNDEFFormat(const char *Cmd
); // used by "nfc mf cformat"
31 int CmdHFMFNDEFWrite(const char *Cmd
); // used by "nfc mf cwrite"
33 void showSectorTable(sector_t
*k_sector
, size_t k_sectors_cnt
);
34 void readerAttack(sector_t
*k_sector
, size_t k_sectors_cnt
, nonces_t data
, bool setEmulatorMem
, bool verbose
);
35 void printKeyTable(size_t sectorscnt
, sector_t
*e_sector
);
36 void printKeyTableEx(size_t sectorscnt
, sector_t
*e_sector
, uint8_t start_sector
);
37 // void printKeyTableEx(size_t sectorscnt, sector_t *e_sector, uint8_t start_sector, bool singel_sector);
39 bool mfc_value(const uint8_t *d
, int32_t *val
);
40 void mf_print_sector_hdr(uint8_t sector
);
41 void mf_print_block_one(uint8_t blockno
, uint8_t *d
, bool verbose
);
43 int mfc_ev1_print_signature(uint8_t *uid
, uint8_t uidlen
, uint8_t *signature
, int signature_len
);