HyperDbg Debugger
Loading...
Searching...
No Matches
InlineAsm.h
Go to the documentation of this file.
1
12#pragma once
13
14//
15// ==================== Vmx Operations ====================
16// File : AsmVmxOperation.asm
17//
18
23extern VOID inline AsmEnableVmxOperation();
24
29extern VOID inline AsmRestoreToVmxOffState();
30
40extern NTSTATUS inline AsmVmxVmcall(UINT64 VmcallNumber,
41 UINT64 OptionalParam1,
42 UINT64 OptionalParam2,
43 UINT64 OptionalParam3);
44
51extern VOID inline AsmHypervVmcall(UINT64 GuestRegisters);
52
61extern UINT64 inline AsmVmfunc(ULONG EptpIndex, ULONG Function);
62
63//
64// ==================== Vmx Context State Operations ====================
65// File : AsmVmxContextState.asm
66//
67
72extern VOID
74
79extern VOID
81
82//
83// ==================== Vmx VM-Exit Handler ====================
84// File : AsmVmexitHandler.asm
85//
86
91extern VOID
93
98extern VOID inline AsmSaveVmxOffState();
99
104extern VOID inline AsmVmxoffRestoreXmmRegs(UINT64 XmmRegs);
105
106//
107// ==================== Extended Page Tables ====================
108// File : AsmEpt.asm
109//
110
118extern UCHAR inline AsmInvept(ULONG Type, PVOID Descriptors);
119
127extern UCHAR inline AsmInvvpid(ULONG Type, PVOID Descriptors);
128
129//
130// ==================== Get segment registers ====================
131// File : AsmSegmentRegs.asm
132//
133
134/* ********* Segment registers ********* */
135
141extern UINT16
143
149extern UINT16
151
152extern VOID
153AsmSetDs(UINT16 DsSelector);
154
160extern UINT16
162
163extern VOID
164AsmSetEs(UINT16 EsSelector);
165
171extern UINT16
173
174extern VOID
175AsmSetSs(UINT16 SsSelector);
176
182extern UINT16
184
185extern VOID
186AsmSetFs(UINT16 FsSelector);
187
193extern UINT16
195
201extern UINT16
203
209extern UINT16
211
212/* ******* Gdt related functions ******* */
213
219extern UINT64 inline AsmGetGdtBase();
220
226extern UINT16
228
229/* ******* Idt related functions ******* */
230
236extern UINT64 inline AsmGetIdtBase();
237
243extern UINT16
245
246extern UINT32
248//
249// ==================== Common Functions ====================
250// File : AsmCommon.asm
251//
252
258extern UINT16
260
265extern VOID inline AsmCliInstruction();
266
271extern VOID inline AsmStiInstruction();
272
279extern VOID
280AsmReloadGdtr(PVOID GdtBase, ULONG GdtLimit);
281
288extern VOID
289AsmReloadIdtr(PVOID IdtrBase, ULONG IdtrLimit);
290
296extern UINT64
298
299//
300// ==================== Hook Functions ====================
301// File : AsmHooks.asm
302//
303
308extern VOID
310
311//
312// ==================== Kernel Test Functions ====================
313// File : AsmKernelSideTests.asm
314//
315
320extern UINT64
322 UINT64 Param2,
323 UINT64 Param3,
324 UINT64 Param4);
325
326//
327// ==================== Interrupt Handler Functions ====================
328// File : Interrupt Handlers.asm.asm
329//
330
335extern VOID
337
342extern VOID
344
349extern VOID
351
356extern VOID
358
363extern VOID
365
370extern VOID
372
377extern VOID
379
384extern VOID
386
391extern VOID
393
398extern VOID
400
405extern VOID
407
412extern VOID
414
419extern VOID
421
426extern VOID
428
433extern VOID
435
440extern VOID
442
447extern VOID
449
454extern VOID
456
461extern VOID
463
468extern VOID
470
475extern VOID
477
482extern VOID
484
489extern VOID
491
496extern VOID
498
503extern VOID
505
510extern VOID
512
517extern VOID
519
524extern VOID
526
531extern VOID
533
538extern VOID
540
545extern VOID
UINT16 AsmGetSs()
Get SS Register.
VOID InterruptHandler21()
The 21st entry in IDT.
VOID InterruptHandler17()
The 17th entry in IDT.
VOID InterruptHandler1()
The 1st entry in IDT.
VOID InterruptHandler25()
The 25th entry in IDT.
VOID InterruptHandler13()
The 13th entry in IDT.
VOID InterruptHandler11()
The 11th entry in IDT.
NTSTATUS AsmVmxVmcall(UINT64 VmcallNumber, UINT64 OptionalParam1, UINT64 OptionalParam2, UINT64 OptionalParam3)
Request Vmcall.
VOID InterruptHandler29()
The 29th entry in IDT.
UINT32 AsmGetAccessRights(UINT16 Selector)
UINT16 AsmGetFs()
Get FS Register.
UINT64 AsmGetIdtBase()
Get IDT base.
VOID AsmVmexitHandler()
Vm-exit handler.
VOID InterruptHandler2()
The 2nd entry in IDT.
VOID InterruptHandler12()
The 12th entry in IDT.
VOID AsmVmxoffRestoreXmmRegs(UINT64 XmmRegs)
Restore XMM registers.
UCHAR AsmInvvpid(ULONG Type, PVOID Descriptors)
INVVPID wrapper.
VOID AsmSetFs(UINT16 FsSelector)
VOID InterruptHandler19()
The 19th entry in IDT.
UINT16 AsmGetCs()
Get CS Register.
VOID InterruptHandler26()
The 26th entry in IDT.
UINT16 AsmGetGdtLimit()
Get GDT Limit.
VOID InterruptHandler8()
The 8th entry in IDT.
VOID AsmHypervVmcall(UINT64 GuestRegisters)
Hyper-v vmcall handler.
VOID InterruptHandler18()
The 18th entry in IDT.
VOID AsmVmxRestoreState()
Restore state on vmx.
UINT64 AsmTestWrapperWithTestTags(UINT64 Param1, UINT64 Param2, UINT64 Param3, UINT64 Param4)
Tests with test tags wrapper.
VOID InterruptHandler20()
The 20th entry in IDT.
UINT16 AsmGetEs()
Get ES Register.
UINT64 AsmGetGdtBase()
get GDT base
VOID InterruptHandler9()
The 9th entry in IDT.
VOID InterruptHandler3()
The 3rd entry in IDT.
UINT16 AsmGetDs()
Get DS Register.
VOID InterruptHandler30()
The 30th entry in IDT.
VOID InterruptHandler7()
The 7th entry in IDT.
VOID InterruptHandler24()
The 24th entry in IDT.
VOID InterruptHandler23()
The 23rd entry in IDT.
VOID AsmCliInstruction()
Run CLI Instruction.
VOID InterruptHandler5()
The 5th entry in IDT.
VOID InterruptHandler14()
The 14th entry in IDT.
VOID AsmRestoreToVmxOffState()
Restore in vmxoff state.
VOID InterruptHandler0()
The 0th entry in IDT.
VOID InterruptHandler10()
The 10th entry in IDT.
VOID InterruptHandler16()
The 16th entry in IDT.
VOID AsmReloadIdtr(PVOID IdtrBase, ULONG IdtrLimit)
Reload new IDTR.
VOID InterruptHandler28()
The 28th entry in IDT.
UINT16 AsmGetGs()
Get GS Register.
VOID AsmSaveVmxOffState()
Save vmxoff state.
VOID AsmEnableVmxOperation()
Enable VMX Operation.
VOID InterruptHandler6()
The 6th entry in IDT.
UINT64 AsmVmfunc(ULONG EptpIndex, ULONG Function)
VMFUNC instruction.
UINT64 AsmReadSsp()
Read SSP.
UINT16 AsmGetRflags()
Get R/EFLAGS.
VOID AsmSetEs(UINT16 EsSelector)
UCHAR AsmInvept(ULONG Type, PVOID Descriptors)
INVEPT wrapper.
UINT16 AsmGetTr()
Get TR Register.
VOID InterruptHandler15()
The 15th entry in IDT.
VOID InterruptHandler27()
The 27th entry in IDT.
VOID AsmGeneralDetourHook(VOID)
Detour hook handler.
VOID AsmSetSs(UINT16 SsSelector)
UINT16 AsmGetLdtr()
Get LDTR Register.
UINT16 AsmGetIdtLimit()
Get IDT limit.
VOID InterruptHandler4()
The 4th entry in IDT.
VOID AsmVmxSaveState()
Save state on vmx.
VOID AsmStiInstruction()
Run STI Instruction.
VOID InterruptHandler22()
The 22nd entry in IDT.
VOID AsmReloadGdtr(PVOID GdtBase, ULONG GdtLimit)
Reload new GDTR.
VOID AsmSetDs(UINT16 DsSelector)
_In_ UINT16 Selector
Definition Segmentation.h:50
unsigned short UINT16
Definition BasicTypes.h:53
void * PVOID
Definition BasicTypes.h:56
unsigned char UCHAR
Definition BasicTypes.h:34
unsigned int UINT32
Definition BasicTypes.h:54
unsigned long ULONG
Definition BasicTypes.h:31