HyperDbg/hyperdbg/script-eval/header/ScriptEngineCommonDefinitions.h

662 lines
13 KiB
C
Raw Normal View History

2022-06-28 09:52:24 -07:00
#pragma once
#ifndef SCRIPT_ENGINE_COMMON_DEFINITIONS_H
#define SCRIPT_ENGINE_COMMON_DEFINITIONS_H
typedef struct SYMBOL {
long long unsigned Type;
long long unsigned Value;
} SYMBOL, * PSYMBOL;
typedef struct SYMBOL_BUFFER {
PSYMBOL Head;
unsigned int Pointer;
unsigned int Size;
char* Message;
} SYMBOL_BUFFER, * PSYMBOL_BUFFER;
2022-06-28 09:52:24 -07:00
typedef struct SYMBOL_MAP
{
char* Name;
2022-06-28 09:52:24 -07:00
long long unsigned Type;
} SYMBOL_MAP, * PSYMBOL_MAP;
typedef struct ACTION_BUFFER {
long long unsigned Tag;
long long unsigned CurrentAction;
char ImmediatelySendTheResults;
long long unsigned Context;
char CallingStage;
2022-06-28 09:52:24 -07:00
} ACTION_BUFFER, *PACTION_BUFFER;
#define SYMBOL_GLOBAL_ID_TYPE 0
#define SYMBOL_LOCAL_ID_TYPE 1
#define SYMBOL_NUM_TYPE 2
#define SYMBOL_REGISTER_TYPE 3
#define SYMBOL_PSEUDO_REG_TYPE 4
#define SYMBOL_SEMANTIC_RULE_TYPE 5
#define SYMBOL_TEMP_TYPE 6
#define SYMBOL_STRING_TYPE 7
#define SYMBOL_VARIABLE_COUNT_TYPE 8
#define SYMBOL_MEM_VALID_CHECK_MASK (1 << 31)
#define SYMBOL_INVALID 9
#define INVALID -999
#define LALR_ACCEPT 999
2023-09-11 22:32:30 +09:00
#ifndef FUNC_INC
#define FUNC_INC 0
2023-09-11 22:32:30 +09:00
#endif // !FUNC_INC
#ifndef FUNC_DEC
#define FUNC_DEC 1
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DEC
#ifndef FUNC_REFERENCE
#define FUNC_REFERENCE 2
2023-09-11 22:32:30 +09:00
#endif // !FUNC_REFERENCE
#ifndef FUNC_DEREFERENCE
#define FUNC_DEREFERENCE 3
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DEREFERENCE
#ifndef FUNC_OR
#define FUNC_OR 4
2023-09-11 22:32:30 +09:00
#endif // !FUNC_OR
#ifndef FUNC_XOR
#define FUNC_XOR 5
2023-09-11 22:32:30 +09:00
#endif // !FUNC_XOR
#ifndef FUNC_AND
#define FUNC_AND 6
2023-09-11 22:32:30 +09:00
#endif // !FUNC_AND
#ifndef FUNC_ASR
#define FUNC_ASR 7
2023-09-11 22:32:30 +09:00
#endif // !FUNC_ASR
#ifndef FUNC_ASL
#define FUNC_ASL 8
2023-09-11 22:32:30 +09:00
#endif // !FUNC_ASL
#ifndef FUNC_ADD
#define FUNC_ADD 9
2023-09-11 22:32:30 +09:00
#endif // !FUNC_ADD
#ifndef FUNC_SUB
#define FUNC_SUB 10
2023-09-11 22:32:30 +09:00
#endif // !FUNC_SUB
#ifndef FUNC_MUL
#define FUNC_MUL 11
2023-09-11 22:32:30 +09:00
#endif // !FUNC_MUL
#ifndef FUNC_DIV
#define FUNC_DIV 12
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DIV
#ifndef FUNC_MOD
#define FUNC_MOD 13
2023-09-11 22:32:30 +09:00
#endif // !FUNC_MOD
#ifndef FUNC_GT
#define FUNC_GT 14
2023-09-11 22:32:30 +09:00
#endif // !FUNC_GT
#ifndef FUNC_LT
#define FUNC_LT 15
2023-09-11 22:32:30 +09:00
#endif // !FUNC_LT
#ifndef FUNC_EGT
#define FUNC_EGT 16
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EGT
#ifndef FUNC_ELT
#define FUNC_ELT 17
2023-09-11 22:32:30 +09:00
#endif // !FUNC_ELT
#ifndef FUNC_EQUAL
#define FUNC_EQUAL 18
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EQUAL
#ifndef FUNC_NEQ
#define FUNC_NEQ 19
2023-09-11 22:32:30 +09:00
#endif // !FUNC_NEQ
#ifndef FUNC_START_OF_IF
#define FUNC_START_OF_IF 20
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_IF
#ifndef FUNC_JMP
#define FUNC_JMP 21
2023-09-11 22:32:30 +09:00
#endif // !FUNC_JMP
#ifndef FUNC_JZ
#define FUNC_JZ 22
2023-09-11 22:32:30 +09:00
#endif // !FUNC_JZ
#ifndef FUNC_JNZ
#define FUNC_JNZ 23
2023-09-11 22:32:30 +09:00
#endif // !FUNC_JNZ
#ifndef FUNC_JMP_TO_END_AND_JZCOMPLETED
#define FUNC_JMP_TO_END_AND_JZCOMPLETED 24
2023-09-11 22:32:30 +09:00
#endif // !FUNC_JMP_TO_END_AND_JZCOMPLETED
#ifndef FUNC_END_OF_IF
#define FUNC_END_OF_IF 25
2023-09-11 22:32:30 +09:00
#endif // !FUNC_END_OF_IF
#ifndef FUNC_START_OF_WHILE
#define FUNC_START_OF_WHILE 26
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_WHILE
#ifndef FUNC_END_OF_WHILE
#define FUNC_END_OF_WHILE 27
2023-09-11 22:32:30 +09:00
#endif // !FUNC_END_OF_WHILE
#ifndef FUNC_VARGSTART
#define FUNC_VARGSTART 28
2023-09-11 22:32:30 +09:00
#endif // !FUNC_VARGSTART
#ifndef FUNC_MOV
#define FUNC_MOV 29
2023-09-11 22:32:30 +09:00
#endif // !FUNC_MOV
#ifndef FUNC_START_OF_DO_WHILE
#define FUNC_START_OF_DO_WHILE 30
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_DO_WHILE
#ifndef FUNC_
#define FUNC_ 31
2023-09-11 22:32:30 +09:00
#endif // !FUNC_
#ifndef FUNC_START_OF_DO_WHILE_COMMANDS
#define FUNC_START_OF_DO_WHILE_COMMANDS 32
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_DO_WHILE_COMMANDS
#ifndef FUNC_END_OF_DO_WHILE
#define FUNC_END_OF_DO_WHILE 33
2023-09-11 22:32:30 +09:00
#endif // !FUNC_END_OF_DO_WHILE
#ifndef FUNC_START_OF_FOR
#define FUNC_START_OF_FOR 34
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_FOR
#ifndef FUNC_FOR_INC_DEC
#define FUNC_FOR_INC_DEC 35
2023-09-11 22:32:30 +09:00
#endif // !FUNC_FOR_INC_DEC
#ifndef FUNC_START_OF_FOR_OMMANDS
#define FUNC_START_OF_FOR_OMMANDS 36
2023-09-11 22:32:30 +09:00
#endif // !FUNC_START_OF_FOR_OMMANDS
#ifndef FUNC_END_OF_IF
#define FUNC_END_OF_IF 37
2023-09-11 22:32:30 +09:00
#endif // !FUNC_END_OF_IF
#ifndef FUNC_IGNORE_LVALUE
#define FUNC_IGNORE_LVALUE 38
2023-09-11 22:32:30 +09:00
#endif // !FUNC_IGNORE_LVALUE
#ifndef FUNC_PRINT
#define FUNC_PRINT 39
2023-09-11 22:32:30 +09:00
#endif // !FUNC_PRINT
#ifndef FUNC_FORMATS
#define FUNC_FORMATS 40
2023-09-11 22:32:30 +09:00
#endif // !FUNC_FORMATS
#ifndef FUNC_EVENT_ENABLE
#define FUNC_EVENT_ENABLE 41
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EVENT_ENABLE
#ifndef FUNC_EVENT_DISABLE
#define FUNC_EVENT_DISABLE 42
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EVENT_DISABLE
2023-10-22 01:14:36 +09:00
#ifndef FUNC_EVENT_CLEAR
#define FUNC_EVENT_CLEAR 43
#endif // !FUNC_EVENT_CLEAR
2023-09-11 22:32:30 +09:00
#ifndef FUNC_TEST_STATEMENT
2023-10-22 01:14:36 +09:00
#define FUNC_TEST_STATEMENT 44
2023-09-11 22:32:30 +09:00
#endif // !FUNC_TEST_STATEMENT
#ifndef FUNC_SPINLOCK_LOCK
2023-10-22 01:14:36 +09:00
#define FUNC_SPINLOCK_LOCK 45
2023-09-11 22:32:30 +09:00
#endif // !FUNC_SPINLOCK_LOCK
#ifndef FUNC_SPINLOCK_UNLOCK
2023-10-22 01:14:36 +09:00
#define FUNC_SPINLOCK_UNLOCK 46
2023-09-11 22:32:30 +09:00
#endif // !FUNC_SPINLOCK_UNLOCK
#ifndef FUNC_EVENT_SC
2023-10-22 01:14:36 +09:00
#define FUNC_EVENT_SC 47
#endif // !FUNC_EVENT_SC
2023-09-11 22:32:30 +09:00
#ifndef FUNC_PRINTF
2023-10-22 01:14:36 +09:00
#define FUNC_PRINTF 48
2023-09-11 22:32:30 +09:00
#endif // !FUNC_PRINTF
#ifndef FUNC_PAUSE
2023-10-22 01:14:36 +09:00
#define FUNC_PAUSE 49
2023-09-11 22:32:30 +09:00
#endif // !FUNC_PAUSE
#ifndef FUNC_FLUSH
2023-10-22 01:14:36 +09:00
#define FUNC_FLUSH 50
2023-09-11 22:32:30 +09:00
#endif // !FUNC_FLUSH
#ifndef FUNC_SPINLOCK_LOCK_CUSTOM_WAIT
2023-10-22 01:14:36 +09:00
#define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 51
2023-09-11 22:32:30 +09:00
#endif // !FUNC_SPINLOCK_LOCK_CUSTOM_WAIT
#ifndef FUNC_EVENT_INJECT
2023-10-22 01:14:36 +09:00
#define FUNC_EVENT_INJECT 52
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EVENT_INJECT
#ifndef FUNC_POI
2023-10-22 01:14:36 +09:00
#define FUNC_POI 53
2023-09-11 22:32:30 +09:00
#endif // !FUNC_POI
#ifndef FUNC_DB
2023-10-22 01:14:36 +09:00
#define FUNC_DB 54
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DB
#ifndef FUNC_DD
2023-10-22 01:14:36 +09:00
#define FUNC_DD 55
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DD
#ifndef FUNC_DW
2023-10-22 01:14:36 +09:00
#define FUNC_DW 56
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DW
#ifndef FUNC_DQ
2023-10-22 01:14:36 +09:00
#define FUNC_DQ 57
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DQ
#ifndef FUNC_NEG
2023-10-22 01:14:36 +09:00
#define FUNC_NEG 58
2023-09-11 22:32:30 +09:00
#endif // !FUNC_NEG
#ifndef FUNC_HI
2023-10-22 01:14:36 +09:00
#define FUNC_HI 59
2023-09-11 22:32:30 +09:00
#endif // !FUNC_HI
#ifndef FUNC_LOW
2023-10-22 01:14:36 +09:00
#define FUNC_LOW 60
2023-09-11 22:32:30 +09:00
#endif // !FUNC_LOW
#ifndef FUNC_NOT
2023-10-22 01:14:36 +09:00
#define FUNC_NOT 61
2023-09-11 22:32:30 +09:00
#endif // !FUNC_NOT
#ifndef FUNC_CHECK_ADDRESS
2023-10-22 01:14:36 +09:00
#define FUNC_CHECK_ADDRESS 62
2023-09-11 22:32:30 +09:00
#endif // !FUNC_CHECK_ADDRESS
#ifndef FUNC_WCSLEN
#define FUNC_WCSLEN 63
2023-09-11 22:32:30 +09:00
#endif // !FUNC_WCSLEN
#ifndef FUNC_DISASSEMBLE_LEN
#define FUNC_DISASSEMBLE_LEN 64
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DISASSEMBLE_LEN
#ifndef FUNC_DISASSEMBLE_LEN32
#define FUNC_DISASSEMBLE_LEN32 65
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DISASSEMBLE_LEN32
#ifndef FUNC_DISASSEMBLE_LEN64
#define FUNC_DISASSEMBLE_LEN64 66
2023-09-11 22:32:30 +09:00
#endif // !FUNC_DISASSEMBLE_LEN64
#ifndef FUNC_INTERLOCKED_INCREMENT
#define FUNC_INTERLOCKED_INCREMENT 67
2023-09-11 22:32:30 +09:00
#endif // !FUNC_INTERLOCKED_INCREMENT
#ifndef FUNC_INTERLOCKED_DECREMENT
#define FUNC_INTERLOCKED_DECREMENT 68
2023-09-11 22:32:30 +09:00
#endif // !FUNC_INTERLOCKED_DECREMENT
#ifndef FUNC_REFERENCE
#define FUNC_REFERENCE 69
2023-09-11 22:32:30 +09:00
#endif // !FUNC_REFERENCE
#ifndef FUNC_PHYSICAL_TO_VIRTUAL
#define FUNC_PHYSICAL_TO_VIRTUAL 70
2023-09-11 22:32:30 +09:00
#endif // !FUNC_PHYSICAL_TO_VIRTUAL
#ifndef FUNC_VIRTUAL_TO_PHYSICAL
#define FUNC_VIRTUAL_TO_PHYSICAL 71
2023-09-11 22:32:30 +09:00
#endif // !FUNC_VIRTUAL_TO_PHYSICAL
#ifndef FUNC_ED
#define FUNC_ED 72
2023-09-11 22:32:30 +09:00
#endif // !FUNC_ED
#ifndef FUNC_EB
#define FUNC_EB 73
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EB
#ifndef FUNC_EQ
#define FUNC_EQ 74
2023-09-11 22:32:30 +09:00
#endif // !FUNC_EQ
#ifndef FUNC_INTERLOCKED_EXCHANGE
#define FUNC_INTERLOCKED_EXCHANGE 75
2023-09-11 22:32:30 +09:00
#endif // !FUNC_INTERLOCKED_EXCHANGE
2023-09-16 19:22:11 +09:00
#ifndef FUNC_INTERLOCKED_EXCHANGE_ADD
#define FUNC_INTERLOCKED_EXCHANGE_ADD 76
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_EXCHANGE_ADD
2023-09-20 12:06:10 +08:00
#ifndef FUNC_WCSCMP
#define FUNC_WCSCMP 77
2023-09-20 12:06:10 +08:00
#endif // !FUNC_WCSCMP
2023-09-16 19:22:11 +09:00
#ifndef FUNC_INTERLOCKED_COMPARE_EXCHANGE
#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 78
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_COMPARE_EXCHANGE
#ifndef FUNC_MEMCPY
#define FUNC_MEMCPY 79
2023-09-16 19:22:11 +09:00
#endif // !FUNC_MEMCPY
#ifndef FUNC_EVENT_INJECT_ERROR_CODE
#define FUNC_EVENT_INJECT_ERROR_CODE 80
2023-09-16 19:22:11 +09:00
#endif // !FUNC_EVENT_INJECT_ERROR_CODE
#ifndef FUNC_STRLEN
#define FUNC_STRLEN 81
#endif // !FUNC_STRLEN
#ifndef FUNC_STRCMP
#define FUNC_STRCMP 82
#endif // !FUNC_STRCMP
2023-09-29 23:39:13 +08:00
#ifndef FUNC_MEMCMP
2023-10-22 01:14:36 +09:00
#define FUNC_MEMCMP 83
2023-09-29 23:39:13 +08:00
#endif // !FUNC_MEMCMP
2023-09-16 19:22:11 +09:00
#ifndef FUNC_POI
2023-10-22 01:14:36 +09:00
#define FUNC_POI 84
2023-09-16 19:22:11 +09:00
#endif // !FUNC_POI
#ifndef FUNC_DB
2023-10-22 01:14:36 +09:00
#define FUNC_DB 85
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DB
#ifndef FUNC_DD
2023-10-22 01:14:36 +09:00
#define FUNC_DD 86
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DD
#ifndef FUNC_DW
2023-10-22 01:14:36 +09:00
#define FUNC_DW 87
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DW
#ifndef FUNC_DQ
2023-10-22 01:14:36 +09:00
#define FUNC_DQ 88
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DQ
#ifndef FUNC_NEG
2023-10-22 01:14:36 +09:00
#define FUNC_NEG 89
2023-09-16 19:22:11 +09:00
#endif // !FUNC_NEG
#ifndef FUNC_HI
2023-10-22 01:14:36 +09:00
#define FUNC_HI 90
2023-09-16 19:22:11 +09:00
#endif // !FUNC_HI
#ifndef FUNC_LOW
2023-10-22 01:14:36 +09:00
#define FUNC_LOW 91
2023-09-16 19:22:11 +09:00
#endif // !FUNC_LOW
#ifndef FUNC_NOT
2023-10-22 01:14:36 +09:00
#define FUNC_NOT 92
2023-09-16 19:22:11 +09:00
#endif // !FUNC_NOT
#ifndef FUNC_CHECK_ADDRESS
2023-10-22 01:14:36 +09:00
#define FUNC_CHECK_ADDRESS 93
2023-09-16 19:22:11 +09:00
#endif // !FUNC_CHECK_ADDRESS
#ifndef FUNC_WCSLEN
#define FUNC_WCSLEN 94
2023-09-16 19:22:11 +09:00
#endif // !FUNC_WCSLEN
#ifndef FUNC_DISASSEMBLE_LEN
#define FUNC_DISASSEMBLE_LEN 95
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DISASSEMBLE_LEN
#ifndef FUNC_DISASSEMBLE_LEN32
#define FUNC_DISASSEMBLE_LEN32 96
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DISASSEMBLE_LEN32
#ifndef FUNC_DISASSEMBLE_LEN64
#define FUNC_DISASSEMBLE_LEN64 97
2023-09-16 19:22:11 +09:00
#endif // !FUNC_DISASSEMBLE_LEN64
#ifndef FUNC_INTERLOCKED_INCREMENT
#define FUNC_INTERLOCKED_INCREMENT 98
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_INCREMENT
#ifndef FUNC_INTERLOCKED_DECREMENT
#define FUNC_INTERLOCKED_DECREMENT 99
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_DECREMENT
#ifndef FUNC_REFERENCE
#define FUNC_REFERENCE 100
2023-09-16 19:22:11 +09:00
#endif // !FUNC_REFERENCE
#ifndef FUNC_PHYSICAL_TO_VIRTUAL
#define FUNC_PHYSICAL_TO_VIRTUAL 101
2023-09-16 19:22:11 +09:00
#endif // !FUNC_PHYSICAL_TO_VIRTUAL
#ifndef FUNC_VIRTUAL_TO_PHYSICAL
#define FUNC_VIRTUAL_TO_PHYSICAL 102
2023-09-16 19:22:11 +09:00
#endif // !FUNC_VIRTUAL_TO_PHYSICAL
#ifndef FUNC_ED
#define FUNC_ED 103
2023-09-16 19:22:11 +09:00
#endif // !FUNC_ED
#ifndef FUNC_EB
#define FUNC_EB 104
2023-09-16 19:22:11 +09:00
#endif // !FUNC_EB
#ifndef FUNC_EQ
#define FUNC_EQ 105
2023-09-16 19:22:11 +09:00
#endif // !FUNC_EQ
#ifndef FUNC_INTERLOCKED_EXCHANGE
#define FUNC_INTERLOCKED_EXCHANGE 106
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_EXCHANGE
#ifndef FUNC_INTERLOCKED_EXCHANGE_ADD
#define FUNC_INTERLOCKED_EXCHANGE_ADD 107
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_EXCHANGE_ADD
2023-09-20 12:06:10 +08:00
#ifndef FUNC_WCSCMP
#define FUNC_WCSCMP 108
2023-09-20 12:06:10 +08:00
#endif // !FUNC_WCSCMP
2023-09-16 19:22:11 +09:00
#ifndef FUNC_INTERLOCKED_COMPARE_EXCHANGE
#define FUNC_INTERLOCKED_COMPARE_EXCHANGE 109
2023-09-16 19:22:11 +09:00
#endif // !FUNC_INTERLOCKED_COMPARE_EXCHANGE
#ifndef FUNC_MEMCPY
#define FUNC_MEMCPY 110
2023-09-16 19:22:11 +09:00
#endif // !FUNC_MEMCPY
#ifndef FUNC_EVENT_INJECT_ERROR_CODE
#define FUNC_EVENT_INJECT_ERROR_CODE 111
2023-09-16 19:22:11 +09:00
#endif // !FUNC_EVENT_INJECT_ERROR_CODE
#ifndef FUNC_STRLEN
#define FUNC_STRLEN 112
#endif // !FUNC_STRLEN
#ifndef FUNC_STRCMP
#define FUNC_STRCMP 113
#endif // !FUNC_STRCMP
2023-09-29 23:39:13 +08:00
#ifndef FUNC_MEMCMP
2023-10-22 01:14:36 +09:00
#define FUNC_MEMCMP 114
2023-09-29 23:39:13 +08:00
#endif // !FUNC_MEMCMP
typedef enum REGS_ENUM {
REGISTER_RAX = 0,
REGISTER_EAX = 1,
REGISTER_AX = 2,
REGISTER_AH = 3,
REGISTER_AL = 4,
REGISTER_RCX = 5,
REGISTER_ECX = 6,
REGISTER_CX = 7,
REGISTER_CH = 8,
REGISTER_CL = 9,
REGISTER_RDX = 10,
REGISTER_EDX = 11,
REGISTER_DX = 12,
REGISTER_DH = 13,
REGISTER_DL = 14,
REGISTER_RBX = 15,
REGISTER_EBX = 16,
REGISTER_BX = 17,
REGISTER_BH = 18,
REGISTER_BL = 19,
REGISTER_RSP = 20,
REGISTER_ESP = 21,
REGISTER_SP = 22,
REGISTER_SPL = 23,
REGISTER_RBP = 24,
REGISTER_EBP = 25,
REGISTER_BP = 26,
REGISTER_BPL = 27,
REGISTER_RSI = 28,
REGISTER_ESI = 29,
REGISTER_SI = 30,
REGISTER_SIL = 31,
REGISTER_RDI = 32,
REGISTER_EDI = 33,
REGISTER_DI = 34,
REGISTER_DIL = 35,
REGISTER_R8 = 36,
REGISTER_R8D = 37,
REGISTER_R8W = 38,
REGISTER_R8H = 39,
REGISTER_R8L = 40,
REGISTER_R9 = 41,
REGISTER_R9D = 42,
REGISTER_R9W = 43,
REGISTER_R9H = 44,
REGISTER_R9L = 45,
REGISTER_R10 = 46,
REGISTER_R10D = 47,
REGISTER_R10W = 48,
REGISTER_R10H = 49,
REGISTER_R10L = 50,
REGISTER_R11 = 51,
REGISTER_R11D = 52,
REGISTER_R11W = 53,
REGISTER_R11H = 54,
REGISTER_R11L = 55,
REGISTER_R12 = 56,
REGISTER_R12D = 57,
REGISTER_R12W = 58,
REGISTER_R12H = 59,
REGISTER_R12L = 60,
REGISTER_R13 = 61,
REGISTER_R13D = 62,
REGISTER_R13W = 63,
REGISTER_R13H = 64,
REGISTER_R13L = 65,
REGISTER_R14 = 66,
REGISTER_R14D = 67,
REGISTER_R14W = 68,
REGISTER_R14H = 69,
REGISTER_R14L = 70,
REGISTER_R15 = 71,
REGISTER_R15D = 72,
REGISTER_R15W = 73,
REGISTER_R15H = 74,
REGISTER_R15L = 75,
REGISTER_DS = 76,
REGISTER_ES = 77,
REGISTER_FS = 78,
REGISTER_GS = 79,
REGISTER_CS = 80,
REGISTER_SS = 81,
REGISTER_RFLAGS = 82,
REGISTER_EFLAGS = 83,
REGISTER_FLAGS = 84,
REGISTER_CF = 85,
REGISTER_PF = 86,
REGISTER_AF = 87,
REGISTER_ZF = 88,
REGISTER_SF = 89,
REGISTER_TF = 90,
REGISTER_IF = 91,
REGISTER_DF = 92,
REGISTER_OF = 93,
REGISTER_IOPL = 94,
REGISTER_NT = 95,
REGISTER_RF = 96,
REGISTER_VM = 97,
REGISTER_AC = 98,
REGISTER_VIF = 99,
REGISTER_VIP = 100,
REGISTER_ID = 101,
REGISTER_RIP = 102,
REGISTER_EIP = 103,
REGISTER_IP = 104,
REGISTER_IDTR = 105,
REGISTER_LDTR = 106,
REGISTER_GDTR = 107,
REGISTER_TR = 108,
REGISTER_CR0 = 109,
REGISTER_CR2 = 110,
REGISTER_CR3 = 111,
REGISTER_CR4 = 112,
REGISTER_CR8 = 113,
REGISTER_DR0 = 114,
REGISTER_DR1 = 115,
REGISTER_DR2 = 116,
REGISTER_DR3 = 117,
REGISTER_DR6 = 118,
REGISTER_DR7 = 119
2022-06-28 09:52:24 -07:00
} REGS_ENUM;
static const char *const RegistersNames[] = {
"rax", "eax", "ax", "ah", "al", "rcx", "ecx", "cx",
"ch", "cl", "rdx", "edx", "dx", "dh", "dl", "rbx",
"ebx", "bx", "bh", "bl", "rsp", "esp", "sp", "spl",
"rbp", "ebp", "bp", "bpl", "rsi", "esi", "si", "sil",
"rdi", "edi", "di", "dil", "r8", "r8d", "r8w", "r8h",
"r8l", "r9", "r9d", "r9w", "r9h", "r9l", "r10", "r10d",
"r10w", "r10h", "r10l", "r11", "r11d", "r11w", "r11h", "r11l",
"r12", "r12d", "r12w", "r12h", "r12l", "r13", "r13d", "r13w",
"r13h", "r13l", "r14", "r14d", "r14w", "r14h", "r14l", "r15",
"r15d", "r15w", "r15h", "r15l", "ds", "es", "fs", "gs",
"cs", "ss", "rflags", "eflags", "flags", "cf", "pf", "af",
"zf", "sf", "tf", "if", "df", "of", "iopl", "nt",
"rf", "vm", "ac", "vif", "vip", "id", "rip", "eip",
"ip", "idtr", "ldtr", "gdtr", "tr", "cr0", "cr2", "cr3",
"cr4", "cr8", "dr0", "dr1", "dr2", "dr3", "dr6", "dr7"
};
2022-06-28 09:52:24 -07:00
#define PSEUDO_REGISTER_PID 0
#define PSEUDO_REGISTER_TID 1
#define PSEUDO_REGISTER_PNAME 2
#define PSEUDO_REGISTER_CORE 3
#define PSEUDO_REGISTER_PROC 4
#define PSEUDO_REGISTER_THREAD 5
#define PSEUDO_REGISTER_PEB 6
#define PSEUDO_REGISTER_TEB 7
#define PSEUDO_REGISTER_IP 8
#define PSEUDO_REGISTER_BUFFER 9
#define PSEUDO_REGISTER_CONTEXT 10
2023-06-07 16:36:53 +09:00
#define PSEUDO_REGISTER_TAG 11
#define PSEUDO_REGISTER_ID 12
2023-07-31 15:05:14 +09:00
#define PSEUDO_REGISTER_STAGE 13
2022-06-28 09:52:24 -07:00
#endif