fix magic detection for MFU

This commit is contained in:
iceman1001
2024-08-25 15:12:53 +02:00
parent 4ddb417107
commit 5b64df9247
3 changed files with 302 additions and 85 deletions
+3 -1
View File
@@ -2554,9 +2554,11 @@ void MifareCIdent(bool is_mfc, uint8_t keytype, uint8_t *key) {
// Generation 1 test
ReaderTransmitBitsPar(wupC1, 7, NULL, NULL);
if (ReaderReceive(rec, recpar) && (rec[0] == 0x0A)) {
flag = MAGIC_FLAG_GEN_1A;
ReaderTransmit(wupC2, sizeof(wupC2), NULL);
if (ReaderReceive(rec, recpar) && (rec[0] != 0x0A)) {
uint16_t tmp = ReaderReceive(rec, recpar);
if ((tmp && (rec[0] != 0x0A)) || (tmp == 0)) {
flag = MAGIC_FLAG_GEN_1B;
}
+287 -81
View File
File diff suppressed because it is too large Load Diff
+12 -3
View File
@@ -42,6 +42,12 @@ typedef struct {
uint8_t data[1024];
} PACKED old_mfu_dump_t;
typedef struct {
const char *name;
const char *model;
const char *version;
} ul_family_t;
uint64_t GetHF14AMfU_Type(void);
int ul_print_type(uint64_t tagtype, uint8_t spaces);
void mfu_print_dump(mfu_dump_t *card, uint16_t pages, uint8_t startpage, bool dense_output);
@@ -81,11 +87,14 @@ int CmdHF14MfUTamper(const char *Cmd);
#define MFU_TT_UL_NANO_40 0x2000000ULL
#define MFU_TT_NTAG_213_TT 0x4000000ULL
#define MFU_TT_NTAG_213_C 0x8000000ULL
#define MFU_TT_MAGIC_1A (0x10000000ULL | MFU_TT_MAGIC)
#define MFU_TT_MAGIC_1B (0x20000000ULL | MFU_TT_MAGIC)
#define MFU_TT_MAGIC_NTAG (0x40000000ULL | MFU_TT_MAGIC)
#define MFU_TT_MAGIC_1A 0x10000000ULL
#define MFU_TT_MAGIC_1B 0x20000000ULL
#define MFU_TT_MAGIC_NTAG 0x40000000ULL
#define MFU_TT_NTAG_210u 0x80000000ULL
#define MFU_TT_UL_AES 0x100000000ULL
#define MFU_TT_MAGIC_2 0x200000000ULL
#define MFU_TT_MAGIC_4 0x400000000ULL
#define MFU_TT_MAGIC_NTAG21X 0x800000000ULL
#define MFU_TT_UL_MAGIC (MFU_TT_UL | MFU_TT_MAGIC)
#define MFU_TT_UL_C_MAGIC (MFU_TT_UL_C | MFU_TT_MAGIC)
// Don't forget to fill UL_TYPES_ARRAY and UL_MEMORY_ARRAY if new types are added