mirror of
https://github.com/gentilkiwi/mimikatz
synced 2024-12-12 09:05:19 +00:00
85 lines
2.8 KiB
C
85 lines
2.8 KiB
C
|
/* Benjamin DELPY `gentilkiwi`
|
||
|
http://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_busylight_hid.h" // to adapt
|
||
|
|
||
|
#define SR98_SLEEP_BEFORE_SEND 10
|
||
|
#define SR98_SLEEP_BEFORE_RECV 10
|
||
|
|
||
|
#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_read_emid(HANDLE hFile, BYTE emid[5]);
|
||
|
|
||
|
BOOL sr98_t5577_write_block(HANDLE hFile, BYTE page, BYTE block, DWORD data, BYTE isPassword, DWORD password);
|
||
|
BOOL sr98_t5577_wipe(HANDLE hFile);
|
||
|
|
||
|
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);
|