MCPcopy Create free account

hub / github.com/SinaKarvandi/Hypervisor-From-Scratch / functions

Functions326 in github.com/SinaKarvandi/Hypervisor-From-Scratch

↓ 1 callersFunctionEptPageUnHookAllPages
Remove and Invalidate Hook in TLB */ Caution : This function won't remove entries from LIST_ENTRY, just invalidate the paging, use HvPerformPageUnHook
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Ept.c:921
↓ 1 callersFunctionEptPageUnHookSinglePage
Remove and Invalidate Hook in TLB */ Caution : This function won't remove entries from LIST_ENTRY, just invalidate the paging, use HvPerformPageUnHook
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Ept.c:894
↓ 1 callersFunctionEptSetupPML2Entry
Set up PML2 Entries */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Ept.c:237
↓ 1 callersFunctionEptSetupPML2Entry
Set up PML2 Entries */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Ept.c:242
↓ 1 callersFunctionEptSplitLargePage
Split 2MB (LargePage) into 4kb pages */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Ept.c:161
↓ 1 callersFunctionEptSplitLargePage
Split 2MB (LargePage) into 4kb pages */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Ept.c:171
↓ 1 callersFunctionEventInjectBreakpoint
Inject #BP to the guest (Event Injection) */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Events.c:22
↓ 1 callersFunctionFindSystemDirectoryTableBase
Find cr3 of system process*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Common.c:125
↓ 1 callersFunctionGetCpuid
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorApp/MyHypervisorApp.cpp:10
↓ 1 callersFunctionHandleCPUID
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:439
↓ 1 callersFunctionHandleControlRegisterAccess
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:497
↓ 1 callersFunctionHandleMSRRead
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:575
↓ 1 callersFunctionHandleMSRWrite
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:604
↓ 1 callersFunctionHvHandleControlRegisterAccess
Handles Guest Access to control registers */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:220
↓ 1 callersFunctionHvHandleControlRegisterAccess
Handles Guest Access to control registers */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:215
↓ 1 callersFunctionHvHandleCpuid
Handle Cpuid Vmexits*/
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:170
↓ 1 callersFunctionHvHandleCpuid
Handle Cpuid Vmexits*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:164
↓ 1 callersFunctionHvHandleMsrRead
Handles in the cases when RDMSR causes a Vmexit*/
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:312
↓ 1 callersFunctionHvHandleMsrRead
Handles in the cases when RDMSR causes a Vmexit*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:309
↓ 1 callersFunctionHvHandleMsrWrite
Handles in the cases when RDMSR causes a Vmexit*/
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:344
↓ 1 callersFunctionHvHandleMsrWrite
Handles in the cases when RDMSR causes a Vmexit*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:349
↓ 1 callersFunctionHvIsVmxSupported
Check whether VMX Feature is supported or not */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:73
↓ 1 callersFunctionHvIsVmxSupported
Check whether VMX Feature is supported or not */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:68
↓ 1 callersFunctionHvNotifyAllToInvalidateEpt
Notify all core to invalidate their EPT */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:416
↓ 1 callersFunctionHvNotifyAllToInvalidateEpt
Notify all core to invalidate their EPT */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:433
↓ 1 callersFunctionHvPerformPageUnHookAllPages
Remove all hooks from the hooked pages list and invalidate TLB */ Should be called from Vmx Non-root
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:634
↓ 1 callersFunctionHvRestoreRegisters
Reset GDTR/IDTR and other old when you do vmxoff as the patchguard will detect them left modified */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:541
↓ 1 callersFunctionHvResumeToNextInstruction
Add the current instruction length to guest rip to resume to next instruction */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:401
↓ 1 callersFunctionHvResumeToNextInstruction
Add the current instruction length to guest rip to resume to next instruction */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:418
↓ 1 callersFunctionHvTerminateVmx
Terminate Vmx on all logical cores. */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:465
↓ 1 callersFunctionHvTerminateVmx
Terminate Vmx on all logical cores. */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:482
↓ 1 callersFunctionHvVmxInitialize
Initialize Vmx */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/HypervisorRoutines.c:13
↓ 1 callersFunctionHvVmxInitialize
Initialize Vmx */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/HypervisorRoutines.c:14
↓ 1 callersFunctionInitializeEptp
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/EPT.c:8
↓ 1 callersFunctionInitializeEptp
Part 4 - Address Translation Using Extended Page Table (EPT)/MyHypervisorDriver/MyHypervisorDriver/EPT.c:5
↓ 1 callersFunctionInitializeEptp
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/EPT.c:7
↓ 1 callersFunctionInitializeVmx
Part 3 - Setting up Our First Virtual Machine/MyHypervisorDriver/MyHypervisorDriver/VMX.c:8
↓ 1 callersFunctionInitializeVmx
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:9
↓ 1 callersFunctionInitializeVmx
Part 4 - Address Translation Using Extended Page Table (EPT)/MyHypervisorDriver/MyHypervisorDriver/VMX.c:8
↓ 1 callersFunctionInitiateVmx
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/VMX.c:9
↓ 1 callersFunctionInveptAllContexts
Invalidates all contexts in ept cache table */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Invept.c:24
↓ 1 callersFunctionInveptSingleContext
Invalidates a single context in ept cache table */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Invept.c:17
↓ 1 callersFunctionInvvpidSingleContext
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vpid.c:22
↓ 1 callersFunctionIsVmxSupported
Part 3 - Setting up Our First Virtual Machine/MyHypervisorDriver/MyHypervisorDriver/Processor.c:43
↓ 1 callersFunctionIsVmxSupported
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/Processor.c:68
↓ 1 callersFunctionIsVmxSupported
Part 4 - Address Translation Using Extended Page Table (EPT)/MyHypervisorDriver/MyHypervisorDriver/Processor.c:43
↓ 1 callersFunctionIsVmxSupported
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/Processor.c:44
↓ 1 callersFunctionLaunchVm
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/VMX.c:49
↓ 1 callersFunctionLoadVmcs
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:167
↓ 1 callersFunctionLoadVmcs
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/VMX.c:188
↓ 1 callersFunctionLogInitialize
Initialize the buffer relating to log message tracing */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Logging.c:11
↓ 1 callersFunctionLogReadBuffer
return of this function shows whether the read was successfull or not (e.g FALSE shows there's no new buffer available.)*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Logging.c:154
↓ 1 callersFunctionLogRegisterEventBasedNotification
Create an event-based usermode notifying mechanism*/
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Logging.c:641
↓ 1 callersFunctionLogRegisterIrpBasedNotification
Register a new IRP Pending thread which listens for new buffers */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Logging.c:576
↓ 1 callersFunctionLogUnInitialize
Uninitialize the buffer relating to log message tracing */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Logging.c:56
↓ 1 callersFunctionMathPower
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/Processor.c:8
↓ 1 callersFunctionPhysicalAddressToVirtualAddress
Converts Physical Address to Virtual Address */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Common.c:116
↓ 1 callersFunctionPhysicalAddressToVirtualAddress
Converts Physical Address to Virtual Address */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Common.c:116
↓ 1 callersFunctionPoolManagerInitialize
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/PoolManager.c:8
↓ 1 callersFunctionPoolManagerUninitialize
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/PoolManager.c:47
↓ 1 callersFunctionPrintAppearance
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorApp/MyHypervisorApp.cpp:81
↓ 1 callersFunctionReadIrpBasedBuffer
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorApp/MyHypervisorApp.cpp:97
↓ 1 callersFunctionResumeToNextInstruction
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:403
↓ 1 callersFunctionRunOnProcessor
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/Processor.c:28
↓ 1 callersFunctionRunOnProcessorForTerminateVMX
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/Processor.c:46
↓ 1 callersFunctionSetupVmcs
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/VMX.c:291
↓ 1 callersFunctionSetupVmcsAndVirtualizeMachine
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:274
↓ 1 callersFunctionSpinlockTryLock
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Spinlock.c:22
↓ 1 callersFunctionSyscallHookFindSsdt
Find SSDT address of Nt fucntions and W32Table */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/SyscallHook.c:66
↓ 1 callersFunctionSyscallHookGetFunctionAddress
Find entry from SSDT table of Nt fucntions and W32Table syscalls */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/SyscallHook.c:126
↓ 1 callersFunctionSyscallHookGetKernelBase
Get the kernel base and Image size */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/SyscallHook.c:8
↓ 1 callersFunctionTerminateVmx
Part 3 - Setting up Our First Virtual Machine/MyHypervisorDriver/MyHypervisorDriver/VMX.c:52
↓ 1 callersFunctionTerminateVmx
Part 6 - Virtualizing An Already Running System/MyHypervisorDriver/MyHypervisorDriver/VMX.c:109
↓ 1 callersFunctionTerminateVmx
Part 4 - Address Translation Using Extended Page Table (EPT)/MyHypervisorDriver/MyHypervisorDriver/VMX.c:52
↓ 1 callersFunctionTerminateVmx
Part 5 - Setting up VMCS & Running Guest Code/MyHypervisorDriver/MyHypervisorDriver/VMX.c:139
↓ 1 callersFunctionVmcallTest
Test Vmcall (VMCALL_TEST) */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmcall.c:65
↓ 1 callersFunctionVmcallTest
Test Vmcall (VMCALL_TEST) */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmcall.c:100
↓ 1 callersFunctionVmxAllocateMsrBitmap
Allocate a buffer forr Msr Bitmap */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/VmxRegions.c:181
↓ 1 callersFunctionVmxAllocateMsrBitmap
Allocate a buffer forr Msr Bitmap */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/VmxRegions.c:184
↓ 1 callersFunctionVmxAllocateVmcsRegion
Allocate Vmcs region and set the Revision ID based on IA32_VMX_BASIC_MSR */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/VmxRegions.c:110
↓ 1 callersFunctionVmxAllocateVmcsRegion
Allocate Vmcs region and set the Revision ID based on IA32_VMX_BASIC_MSR */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/VmxRegions.c:113
↓ 1 callersFunctionVmxAllocateVmmStack
Allocate VMM Stack */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/VmxRegions.c:160
↓ 1 callersFunctionVmxAllocateVmmStack
Allocate VMM Stack */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/VmxRegions.c:163
↓ 1 callersFunctionVmxAllocateVmxonRegion
Allocates Vmxon region and set the Revision ID based on IA32_VMX_BASIC_MSR */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/VmxRegions.c:45
↓ 1 callersFunctionVmxAllocateVmxonRegion
Allocates Vmxon region and set the Revision ID based on IA32_VMX_BASIC_MSR */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/VmxRegions.c:47
↓ 1 callersFunctionVmxClearVmcsState
Clearing Vmcs status using Vmclear instruction */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:172
↓ 1 callersFunctionVmxClearVmcsState
Clearing Vmcs status using Vmclear instruction */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:175
↓ 1 callersFunctionVmxInitializer
Initialize VMX Operation */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:13
↓ 1 callersFunctionVmxInitializer
Initialize VMX Operation */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:15
↓ 1 callersFunctionVmxLoadVmcs
Implementation of Vmptrld instruction */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:192
↓ 1 callersFunctionVmxLoadVmcs
Implementation of Vmptrld instruction */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:195
↓ 1 callersFunctionVmxSetupVmcs
Create and Configure a Vmcs Layout */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:206
↓ 1 callersFunctionVmxSetupVmcs
Create and Configure a Vmcs Layout */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:209
↓ 1 callersFunctionVmxSupportDetection
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorApp/MyHypervisorApp.cpp:53
↓ 1 callersFunctionVmxTerminate
Broadcast to terminate VMX on all logical cores */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:134
↓ 1 callersFunctionVmxTerminate
Broadcast to terminate VMX on all logical cores */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:137
↓ 1 callersFunctionVmxVmcallHandler
Main Vmcall Handler */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmcall.c:7
↓ 1 callersFunctionVmxVmcallHandler
Main Vmcall Handler */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmcall.c:7
↓ 1 callersFunctionVmxVmxoff
Prepare and execute Vmxoff instruction */
Part 7 - Using EPT & Page-level Monitoring Features/MyHypervisorDriver/MyHypervisorDriver/Vmx.c:364
↓ 1 callersFunctionVmxVmxoff
Prepare and execute Vmxoff instruction */
Part 8 - How To Do Magic With Hypervisor!/Hypervisor From Scratch/MyHypervisorDriver/Vmx.c:382
← previousnext →101–200 of 326, ranked by callers