mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-08-29 18:33:27 +00:00
refactor script engine eval codes
This commit is contained in:
parent
46041888ac
commit
90367a5329
19 changed files with 5290 additions and 4982 deletions
|
|
@ -1,400 +0,0 @@
|
|||
#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;
|
||||
typedef struct SYMBOL_MAP
|
||||
{
|
||||
char * Name;
|
||||
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;
|
||||
} 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
|
||||
|
||||
# define FUNC_INC 0
|
||||
# define FUNC_DEC 1
|
||||
# define FUNC_REFERENCE 2
|
||||
# define FUNC_DEREFERENCE 3
|
||||
# define FUNC_OR 4
|
||||
# define FUNC_XOR 5
|
||||
# define FUNC_AND 6
|
||||
# define FUNC_ASR 7
|
||||
# define FUNC_ASL 8
|
||||
# define FUNC_ADD 9
|
||||
# define FUNC_SUB 10
|
||||
# define FUNC_MUL 11
|
||||
# define FUNC_DIV 12
|
||||
# define FUNC_MOD 13
|
||||
# define FUNC_GT 14
|
||||
# define FUNC_LT 15
|
||||
# define FUNC_EGT 16
|
||||
# define FUNC_ELT 17
|
||||
# define FUNC_EQUAL 18
|
||||
# define FUNC_NEQ 19
|
||||
# define FUNC_START_OF_IF 20
|
||||
# define FUNC_JMP 21
|
||||
# define FUNC_JZ 22
|
||||
# define FUNC_JNZ 23
|
||||
# define FUNC_JMP_TO_END_AND_JZCOMPLETED 24
|
||||
# define FUNC_END_OF_IF 25
|
||||
# define FUNC_START_OF_WHILE 26
|
||||
# define FUNC_END_OF_WHILE 27
|
||||
# define FUNC_VARGSTART 28
|
||||
# define FUNC_MOV 29
|
||||
# define FUNC_START_OF_DO_WHILE 30
|
||||
# define FUNC_ 31
|
||||
# define FUNC_START_OF_DO_WHILE_COMMANDS 32
|
||||
# define FUNC_END_OF_DO_WHILE 33
|
||||
# define FUNC_START_OF_FOR 34
|
||||
# define FUNC_FOR_INC_DEC 35
|
||||
# define FUNC_START_OF_FOR_OMMANDS 36
|
||||
# define FUNC_END_OF_IF 37
|
||||
# define FUNC_IGNORE_LVALUE 38
|
||||
# define FUNC_PRINT 39
|
||||
# define FUNC_FORMATS 40
|
||||
# define FUNC_EVENT_ENABLE 41
|
||||
# define FUNC_EVENT_DISABLE 42
|
||||
# define FUNC_TEST_STATEMENT 43
|
||||
# define FUNC_SPINLOCK_LOCK 44
|
||||
# define FUNC_SPINLOCK_UNLOCK 45
|
||||
# define FUNC_PRINTF 46
|
||||
# define FUNC_PAUSE 47
|
||||
# define FUNC_FLUSH 48
|
||||
# define FUNC_EVENT_IGNORE 49
|
||||
# define FUNC_SPINLOCK_LOCK_CUSTOM_WAIT 50
|
||||
# define FUNC_POI 51
|
||||
# define FUNC_DB 52
|
||||
# define FUNC_DD 53
|
||||
# define FUNC_DW 54
|
||||
# define FUNC_DQ 55
|
||||
# define FUNC_NEG 56
|
||||
# define FUNC_HI 57
|
||||
# define FUNC_LOW 58
|
||||
# define FUNC_NOT 59
|
||||
# define FUNC_CHECK_ADDRESS 60
|
||||
# define FUNC_STRLEN 61
|
||||
# define FUNC_WCSLEN 62
|
||||
# define FUNC_INTERLOCKED_INCREMENT 63
|
||||
# define FUNC_INTERLOCKED_DECREMENT 64
|
||||
# define FUNC_REFERENCE 65
|
||||
# define FUNC_PHYSICAL_TO_VIRTUAL 66
|
||||
# define FUNC_VIRTUAL_TO_PHYSICAL 67
|
||||
# define FUNC_ED 68
|
||||
# define FUNC_EB 69
|
||||
# define FUNC_EQ 70
|
||||
# define FUNC_INTERLOCKED_EXCHANGE 71
|
||||
# define FUNC_INTERLOCKED_EXCHANGE_ADD 72
|
||||
# define FUNC_INTERLOCKED_COMPARE_EXCHANGE 73
|
||||
# define FUNC_POI 74
|
||||
# define FUNC_DB 75
|
||||
# define FUNC_DD 76
|
||||
# define FUNC_DW 77
|
||||
# define FUNC_DQ 78
|
||||
# define FUNC_NEG 79
|
||||
# define FUNC_HI 80
|
||||
# define FUNC_LOW 81
|
||||
# define FUNC_NOT 82
|
||||
# define FUNC_CHECK_ADDRESS 83
|
||||
# define FUNC_STRLEN 84
|
||||
# define FUNC_WCSLEN 85
|
||||
# define FUNC_INTERLOCKED_INCREMENT 86
|
||||
# define FUNC_INTERLOCKED_DECREMENT 87
|
||||
# define FUNC_REFERENCE 88
|
||||
# define FUNC_PHYSICAL_TO_VIRTUAL 89
|
||||
# define FUNC_VIRTUAL_TO_PHYSICAL 90
|
||||
# define FUNC_ED 91
|
||||
# define FUNC_EB 92
|
||||
# define FUNC_EQ 93
|
||||
# define FUNC_INTERLOCKED_EXCHANGE 94
|
||||
# define FUNC_INTERLOCKED_EXCHANGE_ADD 95
|
||||
# define FUNC_INTERLOCKED_COMPARE_EXCHANGE 96
|
||||
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
|
||||
|
||||
} 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"};
|
||||
|
||||
# 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
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue