mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
This is the major changes made to the HITAG2 commands. Its heavly based on RFIDLers implementation and its been converted to work with Proxmark3. Special thanks to @kevsecurity for his amazing implementations of the Gone in 360 Seconds paper by Roel, Flavio & Balasch. Thanks to @adamlaurie for his RFIDler project. It wouldnt been doable without it.
This commit is contained in:
@@ -127,6 +127,17 @@ extern bool g_tearoff_enabled;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// endian change for 48bit
|
||||
#ifndef BSWAP_48
|
||||
#define BSWAP_48(x) \
|
||||
(((uint64_t)(x) << 40) & 0x0000ff0000000000ULL) | \
|
||||
(((uint64_t)(x) << 24) & 0x000000ff00000000ULL) | \
|
||||
(((uint64_t)(x) << 8) & 0x00000000ff000000ULL) | \
|
||||
(((uint64_t)(x) >> 8) & 0x000000000ff0000ULL) | \
|
||||
(((uint64_t)(x) >> 24) & 0x00000000000ff00ULL) | \
|
||||
(((uint64_t)(x) >> 40) & 0x0000000000000ffULL)
|
||||
#endif
|
||||
|
||||
// endian change for 32bit
|
||||
#ifdef __GNUC__
|
||||
#ifndef BSWAP_32
|
||||
|
||||
+12
-21
@@ -39,37 +39,28 @@ typedef enum {
|
||||
RHT2F_UID_ONLY = 26,
|
||||
WHT2F_PASSWORD = 27,
|
||||
HT2_LAST_CMD = WHT2F_PASSWORD,
|
||||
} hitag_function;
|
||||
|
||||
typedef struct {
|
||||
uint8_t password[4];
|
||||
} PACKED rht2d_password;
|
||||
} PACKED hitag_function;
|
||||
|
||||
typedef struct {
|
||||
hitag_function cmd;
|
||||
int16_t page;
|
||||
uint8_t data[4];
|
||||
uint8_t NrAr[8];
|
||||
uint8_t data[4];
|
||||
} PACKED rht2d_authenticate;
|
||||
|
||||
typedef struct {
|
||||
uint8_t key[6];
|
||||
uint8_t data[4];
|
||||
} PACKED rht2d_crypto;
|
||||
uint8_t pwd[4];
|
||||
|
||||
typedef struct {
|
||||
// Hitag 1 section.
|
||||
// will reuse pwd or key field.
|
||||
uint8_t key_no;
|
||||
uint8_t logdata_0[4];
|
||||
uint8_t logdata_1[4];
|
||||
uint8_t nonce[4];
|
||||
uint8_t key[4];
|
||||
} PACKED rht1d_authenticate;
|
||||
|
||||
typedef union {
|
||||
rht2d_password pwd;
|
||||
rht1d_authenticate ht1auth;
|
||||
rht2d_authenticate auth;
|
||||
rht2d_crypto crypto;
|
||||
} hitag_data;
|
||||
} PACKED lf_hitag_data_t;
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
uint8_t data[48];
|
||||
} PACKED lf_hitag_crack_response_t;
|
||||
|
||||
//---------------------------------------------------------
|
||||
// Hitag S
|
||||
|
||||
Reference in New Issue
Block a user