|
VOID | ProtectedHvChangeExceptionBitmapWithIntegrityCheck (VIRTUAL_MACHINE_STATE *VCpu, UINT32 CurrentMask, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver) |
| Add extra mask to this resource and write it.
|
|
VOID | ProtectedHvSetExceptionBitmap (VIRTUAL_MACHINE_STATE *VCpu, UINT32 IdtIndex) |
| Set exception bitmap in VMCS.
|
|
VOID | ProtectedHvUnsetExceptionBitmap (VIRTUAL_MACHINE_STATE *VCpu, UINT32 IdtIndex) |
| Unset exception bitmap in VMCS.
|
|
VOID | ProtectedHvResetExceptionBitmapToClearEvents (VIRTUAL_MACHINE_STATE *VCpu) |
| Reset exception bitmap in VMCS because of clearing !exception commands.
|
|
VOID | ProtectedHvRemoveUndefinedInstructionForDisablingSyscallSysretCommands (VIRTUAL_MACHINE_STATE *VCpu) |
| Reset exception bitmap in VMCS because of clearing !exception commands.
|
|
VOID | ProtectedHvApplySetExternalInterruptExiting (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver) |
| Set the External Interrupt Exiting.
|
|
VOID | ProtectedHvSetExternalInterruptExiting (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set) |
| Set the External Interrupt Exiting.
|
|
VOID | ProtectedHvExternalInterruptExitingForDisablingInterruptCommands (VIRTUAL_MACHINE_STATE *VCpu) |
| Clear events of !interrupt.
|
|
VOID | ProtectedHvSetTscVmexit (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver) |
| Set vm-exit for tsc instructions (rdtsc/rdtscp)
|
|
VOID | ProtectedHvSetMovDebugRegsVmexit (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver) |
| Set vm-exit for mov to debug registers.
|
|
VOID | ProtectedHvSetMovToCrVmexit (BOOLEAN Set, UINT64 ControlRegister, UINT64 MaskRegister) |
| Set vm-exit for mov to cr0 / cr4 register.
|
|
VOID | ProtectedHvSetMovControlRegsVmexit (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver, UINT64 ControlRegister, UINT64 MaskRegister) |
| Set vm-exit for mov to control registers.
|
|
VOID | ProtectedHvSetMovToCr3Vmexit (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set, PROTECTED_HV_RESOURCES_PASSING_OVERS PassOver) |
| Set vm-exit for mov to cr3 register.
|
|
VOID | ProtectedHvSetRdtscExiting (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set) |
| Set the RDTSC/P Exiting.
|
|
VOID | ProtectedHvDisableRdtscExitingForDisablingTscCommands (VIRTUAL_MACHINE_STATE *VCpu) |
| Clear events of !tsc.
|
|
VOID | ProtectedHvSetMovDebugRegsExiting (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set) |
| Set MOV to HW Debug Regs Exiting.
|
|
VOID | ProtectedHvDisableMovDebugRegsExitingForDisablingDrCommands (VIRTUAL_MACHINE_STATE *VCpu) |
| Clear events of !dr.
|
|
VOID | ProtectedHvDisableMovControlRegsExitingForDisablingCrCommands (VIRTUAL_MACHINE_STATE *VCpu, UINT64 ControlRegister, UINT64 MaskRegister) |
| Clear events of !crwrite.
|
|
VOID | ProtectedHvSetMov2Cr3Exiting (VIRTUAL_MACHINE_STATE *VCpu, BOOLEAN Set) |
| Set MOV to CR3 Exiting.
|
|
VOID | ProtectedHvSetMov2CrExiting (BOOLEAN Set, UINT64 ControlRegister, UINT64 MaskRegister) |
| Set MOV to CR0/4 Exiting.
|
|
File for protected hypervisor resources.
- Author
- Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
Protected Hypervisor Routines are those resource that are used in different parts of the debugger or hypervisor, these resources need extra checks to avoid integrity problems
- Version
- 0.1
- Date
- 2021-10-04
- Copyright
- This project is released under the GNU Public License v3.