HyperDbg Debugger
Loading...
Searching...
No Matches
ScriptEngineInternalHeader.h
Go to the documentation of this file.
1
13#pragma once
14
16// Registers //
18
20SetRegValueUsingSymbol(PGUEST_REGS GuestRegs, PSYMBOL Symbol, UINT64 Value);
21
23// Pseudo-registers //
25
26UINT64
28
29UINT64
31
32UINT64
34
35CHAR *
37
38UINT64
40
41UINT64
43
44UINT64
46
47UINT64
49
50UINT64
52
53UINT64
54ScriptEnginePseudoRegGetBuffer(UINT64 * CorrespondingAction);
55
56UINT64
58
59UINT64
61
62UINT64
64
65UINT64
67
68UINT64
70
72// Keywords //
74
75//
76// For Virtual Memory
77//
78
79UINT64
80ScriptEngineKeywordPoi(PUINT64 Address, BOOL * HasError);
81
82WORD
83ScriptEngineKeywordHi(PUINT64 Address, BOOL * HasError);
84
85WORD
86ScriptEngineKeywordLow(PUINT64 Address, BOOL * HasError);
87
88BYTE
89ScriptEngineKeywordDb(PUINT64 Address, BOOL * HasError);
90
92ScriptEngineKeywordDd(PUINT64 Address, BOOL * HasError);
93
94WORD
95ScriptEngineKeywordDw(PUINT64 Address, BOOL * HasError);
96
98ScriptEngineKeywordDq(PUINT64 Address, BOOL * HasError);
99
100//
101// For Physical Memory
102//
103
104UINT64
105ScriptEngineKeywordPoiPa(PUINT64 Address, BOOL * HasError);
106
107WORD
108ScriptEngineKeywordHiPa(PUINT64 Address, BOOL * HasError);
109
110WORD
111ScriptEngineKeywordLowPa(PUINT64 Address, BOOL * HasError);
112
113BYTE
114ScriptEngineKeywordDbPa(PUINT64 Address, BOOL * HasError);
115
116DWORD
117ScriptEngineKeywordDdPa(PUINT64 Address, BOOL * HasError);
118
119WORD
120ScriptEngineKeywordDwPa(PUINT64 Address, BOOL * HasError);
121
122QWORD
123ScriptEngineKeywordDqPa(PUINT64 Address, BOOL * HasError);
124
126// Functions //
128
130ScriptEngineFunctionEq(UINT64 Address, QWORD Value, BOOL * HasError);
131
133ScriptEngineFunctionEd(UINT64 Address, DWORD Value, BOOL * HasError);
134
136ScriptEngineFunctionEb(UINT64 Address, BYTE Value, BOOL * HasError);
137
139ScriptEngineFunctionEqPa(UINT64 Address, QWORD Value, BOOL * HasError);
140
142ScriptEngineFunctionEdPa(UINT64 Address, DWORD Value, BOOL * HasError);
143
145ScriptEngineFunctionEbPa(UINT64 Address, BYTE Value, BOOL * HasError);
146
148ScriptEngineFunctionCheckAddress(UINT64 Address, UINT32 Length);
149
150VOID
151ScriptEngineFunctionMemcpy(UINT64 Destination, UINT64 Source, UINT32 Num, BOOL * HasError);
152
153VOID
154ScriptEngineFunctionMemcpyPa(UINT64 Destination, UINT64 Source, UINT32 Num, BOOL * HasError);
155
156VOID
157ScriptEngineFunctionPrint(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value);
158
159VOID
160ScriptEngineFunctionTestStatement(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value);
161
162VOID
163ScriptEngineFunctionSpinlockLock(volatile LONG * Lock, BOOL * HasError);
164
165VOID
166ScriptEngineFunctionSpinlockUnlock(volatile LONG * Lock, BOOL * HasError);
167
168VOID
169ScriptEngineFunctionSpinlockLockCustomWait(volatile long * Lock, unsigned MaxWait, BOOL * HasError);
170
171UINT64
173
174UINT64
176
177UINT64
178ScriptEngineFunctionStrlen(const char * Address);
179
180UINT64
182
183UINT64
184ScriptEngineFunctionWcslen(const wchar_t * Address);
185
186VOID
188
189UINT64
191
192UINT64
194
195long long
196ScriptEngineFunctionInterlockedExchange(long long volatile * Target,
197 long long Value,
198 BOOL * HasError);
199
200long long
201ScriptEngineFunctionInterlockedExchangeAdd(long long volatile * Addend,
202 long long Value,
203 BOOL * HasError);
204
205long long
206ScriptEngineFunctionInterlockedIncrement(long long volatile * Addend,
207 BOOL * HasError);
208
209long long
210ScriptEngineFunctionInterlockedDecrement(long long volatile * Addend,
211 BOOL * HasError);
212
213long long
215 long long volatile * Destination,
216 long long ExChange,
217 long long Comperand,
218 BOOL * HasError);
219
220VOID
221ScriptEngineFunctionEventEnable(UINT64 EventId);
222
223VOID
225
226VOID
227ScriptEngineFunctionEventClear(UINT64 EventId);
228
229VOID
231 ACTION_BUFFER * ActionDetail,
232 PGUEST_REGS GuestRegs);
233
234VOID
236
237VOID
238ScriptEngineFunctionShortCircuitingEvent(UINT64 State, ACTION_BUFFER * ActionDetail);
239
240VOID
241ScriptEngineFunctionFormats(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value);
242
243VOID
245 ACTION_BUFFER * ActionDetail,
246 SCRIPT_ENGINE_GENERAL_REGISTERS * ScriptGeneralRegisters,
247 UINT64 Tag,
248 BOOLEAN ImmediateMessagePassing,
249 char * Format,
250 UINT64 ArgCount,
251 PSYMBOL FirstArg,
252 BOOLEAN * HasError);
253
254VOID
255ScriptEngineFunctionEventInject(UINT32 InterruptionType, UINT32 Vector, BOOL * HasError);
256
257VOID
258ScriptEngineFunctionEventInjectErrorCode(UINT32 InterruptionType, UINT32 Vector, UINT32 ErrorCode, BOOL * HasError);
259
260VOID
262
263VOID
265
268
271
274
277
279ScriptEngineFunctionLbrRestoreByFilter(UINT64 FilterOptions);
280
281UINT64
282ScriptEngineFunctionStrcmp(const char * Address1, const char * Address2);
283
284UINT64
285ScriptEngineFunctionStrncmp(const char * Address1, const char * Address2, size_t Num);
286
287UINT64
288ScriptEngineFunctionWcscmp(const wchar_t * Address1, const wchar_t * Address2);
289
290UINT64
291ScriptEngineFunctionWcsncmp(const wchar_t * Address1, const wchar_t * Address2, size_t Num);
292
293UINT64
294ScriptEngineFunctionMemcmp(const char * Address1, const char * Address2, size_t Count);
POOL_TYPE SIZE_T ULONG Tag
Definition Hooks.h:89
long long ScriptEngineFunctionInterlockedIncrement(long long volatile *Addend, BOOL *HasError)
Implementation of interlocked_exchange_increment function.
Definition Functions.c:925
UINT64 ScriptEnginePseudoRegGetProc()
Implementation of $proc pseudo-register.
Definition PseudoRegisters.c:93
CHAR * ScriptEnginePseudoRegGetPname()
Implementation of $pname pseudo-register.
Definition PseudoRegisters.c:76
UINT64 ScriptEnginePseudoRegGetThread()
Implementation of $thread pseudo-register.
Definition PseudoRegisters.c:110
BOOLEAN ScriptEngineFunctionEqPa(UINT64 Address, QWORD Value, BOOL *HasError)
Implementation of eq function (Physical Memory).
Definition Functions.c:165
UINT64 ScriptEngineFunctionRdtsc()
Implementation of rdtsc function.
Definition Functions.c:841
VOID ScriptEngineFunctionEventTraceInstrumentationStep()
Implementation of event_trace_instrumentation_step function.
Definition Functions.c:1987
VOID ScriptEngineFunctionSpinlockUnlock(volatile LONG *Lock, BOOL *HasError)
Implementation of spinlock_unlock function.
Definition Functions.c:678
BOOLEAN ScriptEngineFunctionEbPa(UINT64 Address, BYTE Value, BOOL *HasError)
Implementation of eb function (Physical Memory).
Definition Functions.c:249
WORD ScriptEngineKeywordLowPa(PUINT64 Address, BOOL *HasError)
Implementation of low keyword.
Definition Keywords.c:351
UINT64 ScriptEnginePseudoRegGetCore()
Implementation of $core pseudo-register.
Definition PseudoRegisters.c:42
UINT64 ScriptEngineFunctionRdtscp()
Implementation of rdtscp function.
Definition Functions.c:851
UINT64 ScriptEnginePseudoRegGetDate()
Implementation of date pseudo-register.
Definition PseudoRegisters.c:407
VOID ScriptEngineFunctionEventInjectErrorCode(UINT32 InterruptionType, UINT32 Vector, UINT32 ErrorCode, BOOL *HasError)
Implementation of event_inject_error_code function.
Definition Functions.c:1836
long long ScriptEngineFunctionInterlockedDecrement(long long volatile *Addend, BOOL *HasError)
Implementation of interlocked_exchange_decrement function.
Definition Functions.c:953
UINT64 ScriptEnginePseudoRegGetTime()
Implementation of time pseudo-register.
Definition PseudoRegisters.c:386
UINT64 ScriptEnginePseudoRegGetEventStage(PACTION_BUFFER ActionBuffer)
Implementation of stage pseudo-register.
Definition PseudoRegisters.c:369
WORD ScriptEngineKeywordDw(PUINT64 Address, BOOL *HasError)
Implementation of dw keyword.
Definition Keywords.c:203
DWORD ScriptEngineKeywordDdPa(PUINT64 Address, BOOL *HasError)
Implementation of dd keyword.
Definition Keywords.c:425
BYTE ScriptEngineKeywordDb(PUINT64 Address, BOOL *HasError)
Implementation of db keyword.
Definition Keywords.c:135
WORD ScriptEngineKeywordLow(PUINT64 Address, BOOL *HasError)
Implementation of low keyword.
Definition Keywords.c:101
BOOLEAN ScriptEngineFunctionLbrRestore()
Implementation of lbr_restore function.
Definition Functions.c:2099
BOOLEAN ScriptEngineFunctionEd(UINT64 Address, DWORD Value, BOOL *HasError)
Implementation of ed function.
Definition Functions.c:87
UINT64 ScriptEnginePseudoRegGetIp()
Implementation of $ip pseudo-register.
Definition PseudoRegisters.c:291
UINT64 ScriptEngineKeywordPoi(PUINT64 Address, BOOL *HasError)
Implementation of poi keyword.
Definition Keywords.c:33
UINT64 ScriptEngineFunctionPhysicalToVirtual(UINT64 Address)
Convert physical address to virtual address.
Definition Functions.c:573
WORD ScriptEngineKeywordHi(PUINT64 Address, BOOL *HasError)
Implementation of hi keyword.
Definition Keywords.c:67
UINT64 ScriptEnginePseudoRegGetPeb()
Implementation of $peb pseudo-register.
Definition PseudoRegisters.c:127
VOID ScriptEngineFunctionShortCircuitingEvent(UINT64 State, ACTION_BUFFER *ActionDetail)
Implementation of event_ignore function.
Definition Functions.c:1188
VOID ScriptEngineFunctionSpinlockLock(volatile LONG *Lock, BOOL *HasError)
Implementation of spinlock_lock function.
Definition Functions.c:649
WORD ScriptEngineKeywordHiPa(PUINT64 Address, BOOL *HasError)
Implementation of hi keyword.
Definition Keywords.c:314
VOID ScriptEngineFunctionPause(ACTION_BUFFER *ActionDetail, PGUEST_REGS GuestRegs)
Implementation of pause function.
Definition Functions.c:1089
DWORD ScriptEngineKeywordDd(PUINT64 Address, BOOL *HasError)
Implementation of dd keyword.
Definition Keywords.c:169
BOOLEAN ScriptEngineFunctionEdPa(UINT64 Address, DWORD Value, BOOL *HasError)
Implementation of ed function (Physical Memory).
Definition Functions.c:207
UINT64 ScriptEngineFunctionStrcmp(const char *Address1, const char *Address2)
Implementation of strcmp function.
Definition Functions.c:1873
QWORD ScriptEngineKeywordDqPa(PUINT64 Address, BOOL *HasError)
Implementation of dq keyword.
Definition Keywords.c:499
BOOLEAN ScriptEngineFunctionCheckAddress(UINT64 Address, UINT32 Length)
Check whether the address is valid or not.
Definition Functions.c:290
UINT64 ScriptEngineFunctionWcscmp(const wchar_t *Address1, const wchar_t *Address2)
Implementation of wcscmp function.
Definition Functions.c:1920
long long ScriptEngineFunctionInterlockedExchange(long long volatile *Target, long long Value, BOOL *HasError)
Implementation of interlocked_exchange function.
Definition Functions.c:866
UINT64 ScriptEngineFunctionVirtualToPhysical(UINT64 Address)
Definition Functions.c:549
UINT64 ScriptEngineFunctionWcsncmp(const wchar_t *Address1, const wchar_t *Address2, size_t Num)
Implementation of wcsncmp function.
Definition Functions.c:1944
BOOLEAN SetRegValueUsingSymbol(PGUEST_REGS GuestRegs, PSYMBOL Symbol, UINT64 Value)
Set the register value.
Definition Regs.c:2035
VOID ScriptEngineFunctionSpinlockLockCustomWait(volatile long *Lock, unsigned MaxWait, BOOL *HasError)
Implementation of spinlock_lock_custom_wait function.
Definition Functions.c:708
BYTE ScriptEngineKeywordDbPa(PUINT64 Address, BOOL *HasError)
Implementation of db keyword.
Definition Keywords.c:388
VOID ScriptEngineFunctionEventDisable(UINT64 EventId)
Implementation of event_disable function.
Definition Functions.c:1036
VOID ScriptEngineFunctionMemcpyPa(UINT64 Destination, UINT64 Source, UINT32 Num, BOOL *HasError)
A VMX-compatible equivalent of memcpy function in C for physical memory.
Definition Functions.c:453
BOOLEAN ScriptEngineFunctionLbrSave()
Implementation of lbr_save function.
Definition Functions.c:2033
VOID ScriptEngineFunctionMicroSleep(UINT64 Us)
Implementation of microsleep function.
Definition Functions.c:825
VOID ScriptEngineFunctionEventEnable(UINT64 EventId)
Implementation of event_enable function.
Definition Functions.c:1014
UINT64 ScriptEngineFunctionDisassembleLen(PVOID Address, BOOLEAN Is32Bit)
Implementation of disassemble_len function.
Definition Functions.c:759
UINT64 ScriptEngineFunctionStrlen(const char *Address)
Implementation of strlen function.
Definition Functions.c:736
long long ScriptEngineFunctionInterlockedCompareExchange(long long volatile *Destination, long long ExChange, long long Comperand, BOOL *HasError)
Implementation of interlocked_compare_exchange function.
Definition Functions.c:983
UINT64 ScriptEnginePseudoRegGetBuffer(UINT64 *CorrespondingAction)
Implementation of $buffer pseudo-register.
Definition PseudoRegisters.c:312
BOOLEAN ScriptEngineFunctionEq(UINT64 Address, QWORD Value, BOOL *HasError)
Implementation of eq function.
Definition Functions.c:48
VOID ScriptEngineFunctionPrintf(PGUEST_REGS GuestRegs, ACTION_BUFFER *ActionDetail, SCRIPT_ENGINE_GENERAL_REGISTERS *ScriptGeneralRegisters, UINT64 Tag, BOOLEAN ImmediateMessagePassing, char *Format, UINT64 ArgCount, PSYMBOL FirstArg, BOOLEAN *HasError)
Implementation of printf function.
Definition Functions.c:1571
VOID ScriptEngineFunctionFlush()
Implementation of flush function.
Definition Functions.c:1163
UINT64 ScriptEngineFunctionMemcmp(const char *Address1, const char *Address2, size_t Count)
Implementation of memcmp function.
Definition Functions.c:1967
UINT64 ScriptEngineFunctionWcslen(const wchar_t *Address)
Implementation of wcslen function.
Definition Functions.c:780
QWORD ScriptEngineKeywordDq(PUINT64 Address, BOOL *HasError)
Implementation of dq keyword.
Definition Keywords.c:237
VOID ScriptEngineFunctionPrint(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value)
Implementation of print function.
Definition Functions.c:599
UINT64 ScriptEnginePseudoRegGetTeb()
Implementation of $teb pseudo-register.
Definition PseudoRegisters.c:274
VOID ScriptEngineFunctionEventInject(UINT32 InterruptionType, UINT32 Vector, BOOL *HasError)
Implementation of event_inject function.
Definition Functions.c:1798
UINT64 ScriptEnginePseudoRegGetTid()
Implementation of $tid pseudo-register.
Definition PseudoRegisters.c:25
UINT64 ScriptEngineKeywordPoiPa(PUINT64 Address, BOOL *HasError)
Implementation of poi_pa keyword.
Definition Keywords.c:277
WORD ScriptEngineKeywordDwPa(PUINT64 Address, BOOL *HasError)
Implementation of dw keyword.
Definition Keywords.c:462
BOOLEAN ScriptEngineFunctionLbrCheck()
Implementation of lbr_check function.
Definition Functions.c:2079
VOID ScriptEngineFunctionEventClear(UINT64 EventId)
Implementation of event_clear function.
Definition Functions.c:1058
VOID ScriptEngineFunctionEventTraceStepIn()
Implementation of event_trace_step_in function.
Definition Functions.c:2011
UINT64 ScriptEnginePseudoRegGetPid()
Implementation of $pid pseudo-register.
Definition PseudoRegisters.c:59
UINT64 ScriptEnginePseudoRegGetEventTag(PACTION_BUFFER ActionBuffer)
Implementation of $tag pseudo-register.
Definition PseudoRegisters.c:333
BOOLEAN ScriptEngineFunctionEb(UINT64 Address, BYTE Value, BOOL *HasError)
Implementation of eb function.
Definition Functions.c:126
VOID ScriptEngineFunctionTestStatement(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value)
Implementation of test_statement function.
Definition Functions.c:627
UINT64 ScriptEngineFunctionStrncmp(const char *Address1, const char *Address2, size_t Num)
Implementation of strcmp function.
Definition Functions.c:1897
UINT64 ScriptEnginePseudoRegGetEventId(PACTION_BUFFER ActionBuffer)
Implementation of $id pseudo-register.
Definition PseudoRegisters.c:351
long long ScriptEngineFunctionInterlockedExchangeAdd(long long volatile *Addend, long long Value, BOOL *HasError)
Implementation of interlocked_exchange_add function.
Definition Functions.c:896
BOOLEAN ScriptEngineFunctionLbrPrint()
Implementation of lbr_print function.
Definition Functions.c:2056
VOID ScriptEngineFunctionFormats(UINT64 Tag, BOOLEAN ImmediateMessagePassing, UINT64 Value)
Implementation of formats function.
Definition Functions.c:1226
VOID ScriptEngineFunctionMemcpy(UINT64 Destination, UINT64 Source, UINT32 Num, BOOL *HasError)
A VMX-compatible equivalent of memcpy function in C.
Definition Functions.c:323
BOOLEAN ScriptEngineFunctionLbrRestoreByFilter(UINT64 FilterOptions)
Implementation of lbr_restore_by_filter function.
Definition Functions.c:2119
int BOOL
Definition BasicTypes.h:25
unsigned short WORD
Definition BasicTypes.h:42
UCHAR BOOLEAN
Definition BasicTypes.h:35
long LONG
Definition BasicTypes.h:28
void * PVOID
Definition BasicTypes.h:56
struct GUEST_REGS * PGUEST_REGS
unsigned char BYTE
Definition BasicTypes.h:40
unsigned long long QWORD
Definition BasicTypes.h:24
struct _SCRIPT_ENGINE_GENERAL_REGISTERS SCRIPT_ENGINE_GENERAL_REGISTERS
List of different variables.
unsigned long DWORD
Definition BasicTypes.h:38
unsigned int UINT32
Definition BasicTypes.h:54
char CHAR
Definition BasicTypes.h:33
struct SYMBOL * PSYMBOL
struct ACTION_BUFFER * PACTION_BUFFER
@ Num
Definition commands.h:167
RequestedActionOfThePacket Value(0x1) 00000000
Definition ScriptEngineCommonDefinitions.h:35