2015-03-24 18:45:31 +08:00
|
|
|
#ifndef CMDHFMFU_H__
|
|
|
|
#define CMDHFMFU_H__
|
|
|
|
|
2017-10-02 04:06:06 +08:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdio.h>
|
2017-12-24 17:32:15 +08:00
|
|
|
#include "des.h"
|
2017-10-02 04:06:06 +08:00
|
|
|
#include "cmdhfmf.h"
|
|
|
|
#include "cmdhf14a.h"
|
|
|
|
#include "mifare.h"
|
|
|
|
#include "util.h"
|
|
|
|
#include "protocols.h"
|
2017-11-11 03:49:56 +08:00
|
|
|
|
2017-07-13 19:10:46 +08:00
|
|
|
typedef struct {
|
|
|
|
uint8_t version[8];
|
|
|
|
uint8_t tbo[2];
|
|
|
|
uint8_t tearing[3];
|
|
|
|
uint8_t pack[2];
|
|
|
|
uint8_t tbo1[1];
|
|
|
|
uint8_t signature[32];
|
|
|
|
//uint8_t counter[3];
|
|
|
|
uint8_t data[1024];
|
|
|
|
} mfu_dump_t;
|
|
|
|
|
2017-07-11 23:52:01 +08:00
|
|
|
extern int CmdHF14AMfUWrBl(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfURdBl(const char *Cmd);
|
2015-01-07 04:08:20 +08:00
|
|
|
|
2014-09-12 05:23:46 +08:00
|
|
|
//Crypto Cards
|
2017-07-11 23:52:01 +08:00
|
|
|
extern int CmdHF14AMfucAuth(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfucSetPwd(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfucSetUid(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfuGenDiverseKeys(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfuPwdGen(const char *Cmd);
|
2014-09-12 05:23:46 +08:00
|
|
|
|
|
|
|
//general stuff
|
2017-07-11 23:52:01 +08:00
|
|
|
extern int CmdHF14AMfUDump(const char *Cmd);
|
2017-07-13 19:10:46 +08:00
|
|
|
extern int CmdHF14AMfURestore(const char *Cmd);
|
2017-07-11 23:52:01 +08:00
|
|
|
extern int CmdHF14AMfUInfo(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfUeLoad(const char *Cmd);
|
|
|
|
extern int CmdHF14AMfUSim(const char *Cmd);
|
2015-06-24 01:22:40 +08:00
|
|
|
|
2017-07-11 23:52:01 +08:00
|
|
|
extern uint32_t GetHF14AMfU_Type(void);
|
|
|
|
extern int ul_print_type(uint32_t tagtype, uint8_t spacer);
|
2015-05-13 00:55:34 +08:00
|
|
|
|
2017-07-13 19:10:46 +08:00
|
|
|
void printMFUdump(mfu_dump_t* card);
|
|
|
|
void printMFUdumpEx(mfu_dump_t* card, uint16_t pages, uint8_t startpage);
|
|
|
|
|
2017-07-11 23:52:01 +08:00
|
|
|
extern int usage_hf_mfu_info(void);
|
|
|
|
extern int usage_hf_mfu_dump(void);
|
|
|
|
extern int usage_hf_mfu_rdbl(void);
|
|
|
|
extern int usage_hf_mfu_wrbl(void);
|
|
|
|
extern int usage_hf_mfu_eload(void);
|
|
|
|
extern int usage_hf_mfu_sim(void);
|
|
|
|
extern int usage_hf_mfu_ucauth(void);
|
|
|
|
extern int usage_hf_mfu_ucsetpwd(void);
|
|
|
|
extern int usage_hf_mfu_ucsetuid(void);
|
|
|
|
extern int usage_hf_mfu_gendiverse(void);
|
|
|
|
extern int usage_hf_mfu_pwdgen(void);
|
2015-04-30 02:24:37 +08:00
|
|
|
|
2014-09-12 05:23:46 +08:00
|
|
|
int CmdHFMFUltra(const char *Cmd);
|
2015-05-13 00:55:34 +08:00
|
|
|
|
2015-12-03 05:46:11 +08:00
|
|
|
uint32_t ul_ev1_pwdgenA(uint8_t* uid);
|
2016-01-10 00:17:36 +08:00
|
|
|
uint32_t ul_ev1_pwdgenA(uint8_t* uid);
|
|
|
|
uint32_t ul_ev1_pwdgenC(uint8_t* uid);
|
2017-11-25 15:48:36 +08:00
|
|
|
uint32_t ul_ev1_pwdgenD(uint8_t* uid);
|
2015-12-03 05:46:11 +08:00
|
|
|
|
2016-02-24 15:31:46 +08:00
|
|
|
uint16_t ul_ev1_packgenA(uint8_t* uid);
|
2017-11-25 15:48:36 +08:00
|
|
|
uint16_t ul_ev1_packgenB(uint8_t* uid);
|
|
|
|
uint16_t ul_ev1_packgenC(uint8_t* uid);
|
|
|
|
uint16_t ul_ev1_packgenD(uint8_t* uid);
|
2018-03-06 03:07:29 +08:00
|
|
|
uint16_t ul_ev1_packgen_VCNEW(uint8_t* uid, uint32_t pwd);
|
2016-02-24 15:31:46 +08:00
|
|
|
|
2017-07-11 23:52:01 +08:00
|
|
|
uint32_t ul_ev1_otpgenA(uint8_t* uid);
|
|
|
|
|
2015-05-13 00:55:34 +08:00
|
|
|
typedef enum TAGTYPE_UL {
|
2017-07-11 23:52:01 +08:00
|
|
|
UNKNOWN = 0x000000,
|
2017-11-27 16:21:55 +08:00
|
|
|
UL = 0x1,
|
|
|
|
UL_C = 0x2,
|
|
|
|
UL_EV1_48 = 0x4,
|
|
|
|
UL_EV1_128 = 0x8,
|
|
|
|
NTAG = 0x10,
|
|
|
|
NTAG_203 = 0x20,
|
|
|
|
NTAG_210 = 0x40,
|
|
|
|
NTAG_212 = 0x80,
|
|
|
|
NTAG_213 = 0x100,
|
|
|
|
NTAG_215 = 0x200,
|
|
|
|
NTAG_216 = 0x400,
|
|
|
|
MY_D = 0x800,
|
|
|
|
MY_D_NFC = 0x1000,
|
|
|
|
MY_D_MOVE = 0x2000,
|
|
|
|
MY_D_MOVE_NFC = 0x4000,
|
|
|
|
MY_D_MOVE_LEAN = 0x8000,
|
|
|
|
NTAG_I2C_1K = 0x10000,
|
|
|
|
NTAG_I2C_2K = 0x20000,
|
|
|
|
NTAG_I2C_1K_PLUS = 0x40000,
|
|
|
|
NTAG_I2C_2K_PLUS = 0x80000,
|
2017-07-11 23:52:01 +08:00
|
|
|
FUDAN_UL = 0x100000,
|
|
|
|
MAGIC = 0x200000,
|
2017-11-27 16:21:55 +08:00
|
|
|
NTAG_213_F = 0x400000,
|
|
|
|
NTAG_216_F = 0x800000,
|
|
|
|
UL_EV1 = 0x1000000,
|
2018-04-03 15:57:20 +08:00
|
|
|
UL_NANO_40 = 0x2000000,
|
2017-07-11 23:52:01 +08:00
|
|
|
UL_MAGIC = UL | MAGIC,
|
|
|
|
UL_C_MAGIC = UL_C | MAGIC,
|
|
|
|
UL_ERROR = 0xFFFFFF,
|
2015-05-13 00:55:34 +08:00
|
|
|
} TagTypeUL_t;
|
|
|
|
|
2015-03-24 18:45:31 +08:00
|
|
|
#endif
|