mimikatz/modules/kull_m_sr98.h

87 lines
2.9 KiB
C

/* Benjamin DELPY `gentilkiwi`
https://blog.gentilkiwi.com
benjamin@gentilkiwi.com
Licence : https://creativecommons.org/licenses/by/4.0/
*/
#pragma once
#include "globals.h"
#include "kull_m_string.h"
#include "kull_m_hid.h"
#define SR98_SLEEP_BEFORE_SEND 100
#define SR98_SLEEP_BEFORE_RECV 100
#define SR98_RATE_RF_32 0
#define SR98_RATE_RF_64 1
#define SR98_T5577_LOCKBIT_MASK 0x80
#define SR98_IOCTL_SUPPORT_CARD 0
#define SR98_IOCTL_TEST_DEVICE 1
#define SR98_IOCTL_BEEP 3
#define SR98_IOCTL_EEPROM_READ 4
#define SR98_IOCTL_EEPROM_WRITE 5
#define SR98_IOCTL_EEPROM_GET 6
#define SR98_IOCTL_EEPROM_SET 7
#define SR98_IOCTL_EMID_READ 16
#define SR98_IOCTL_T5577 18
#define SR98_SUB_IOCTL_T5577_RESET 0
#define SR98_SUB_IOCTL_T5577_READ_CURRENT 1
#define SR98_SUB_IOCTL_T5577_READ_PAGE 2
#define SR98_SUB_IOCTL_T5577_READ_BLOCK 3
#define SR98_SUB_IOCTL_T5577_WRITE_BLOCK 4
#define SR98_SUB_IOCTL_T5577_READ_BLOCK_PASS 5
#define SR98_SUB_IOCTL_T5577_WRITE_BLOCK_PASS 6
#define SR98_SUB_IOCTL_T5577_WAKEUP 7
#define SR98_IOCTL_EM4305 19
#define SR98_SUB_IOCTL_EM4305_WRITE_WORD 1
#define SR98_SUB_IOCTL_EM4305_READ_WORD 2
#define SR98_SUB_IOCTL_EM4305_LOGIN 3
#define SR98_SUB_IOCTL_EM4305_PROTECT 4
#define SR98_SUB_IOCTL_EM4305_DISABLE 5
#define SR98_IOCTL_EL8625A 20
#define SR98_SUB_IOCTL_EL8625A_RESET 0
#define SR98_SUB_IOCTL_EL8625A_WRITE_EMID 1
#define SR98_SUB_IOCTL_EL8625A_RF_STOP 2
#define SR98_SUB_IOCTL_EL8625A_RF_START 3
#define SR98_SUB_IOCTL_EL8625A_WRITE_EMID_PASS 4
#define SR98_IOCTL_MF1_PCD_RESET 32
#define SR98_IOCTL_MF1_TYPEA_GET_UID 33
#define SR98_IOCTL_MF1_TYPEA_REQUEST 34
#define SR98_IOCTL_MF1_TYPEA_ANTICOLL 35
#define SR98_IOCTL_MF1_TYPEA_SELECT 36
#define SR98_IOCTL_MF1_TYPEA_HOST_AUTHKEY 37
#define SR98_IOCTL_MF1_TYPEA_BLOCK_READ 38
#define SR98_IOCTL_MF1_TYPEA_BLOCK_WRITE 39
#define SR98_IOCTL_MF1_TYPEA_HALT 40
#define SR98_IOCTL_MF1_ANTENNA 41
#define SR98_IOCTL_MF1_PCD_TRANSCEIVE_BYTES 42
#define SR98_IOCTL_MF1_PCD_TRANSCEIVE_BITS 43
typedef struct _SR98_DEVICE {
struct _SR98_DEVICE * next;
DWORD id;
PWCHAR DevicePath;
HIDD_ATTRIBUTES hidAttributes;
HIDP_CAPS hidCaps;
HANDLE hDevice;
} SR98_DEVICE, *PSR98_DEVICE;
BOOL sr98_test_device(HANDLE hFile);
BOOL sr98_beep(HANDLE hFile, BYTE duration);
BOOL sr98_read_emid(HANDLE hFile, BYTE emid[5]);
BOOL sr98_t5577_reset(HANDLE hFile, BYTE DataRate);
BOOL sr98_t5577_write_block(HANDLE hFile, BYTE page, BYTE block, DWORD data, BYTE isPassword, DWORD password/*, BYTE lockBit*/);
BOOL sr98_t5577_wipe(HANDLE hFile, BOOL resetAfter);
BOOL sr98_send_receive(HANDLE hFile, BYTE ctl, LPCVOID in, BYTE szIn, LPBYTE *out, BYTE *szOut);
BOOL sr98_devices_get(PSR98_DEVICE *devices, DWORD *count);
void sr98_devices_free(PSR98_DEVICE devices);