Commit graph

24 commits

Author SHA1 Message Date
sina
d37352fd7e fix the error for referencing guest registers twice in both kd and vmx codes 2026-07-19 19:39:33 +02:00
munraimix
7436b35fd0 Fix DRIVER_IRQL_NOT_LESS_OR_EQUAL when reading registers on a manually-halted core
In Debugger Mode, breaking the debuggee and then reading registers (e.g. the
'r' command) could bugcheck the debuggee with DRIVER_IRQL_NOT_LESS_OR_EQUAL
(0xD1) at IRQL 0xff.

Root cause: DebuggerCommandReadRegisters() copies GUEST_REGS from
DbgState->Regs, but the per-core DbgState->Regs is only populated on the
event-triggered halt paths. A core halted via a manual break
(DEBUGGER_VMCALL_VM_EXIT_HALT_SYSTEM) or via the NMI broadcast (KdHandleNmi)
never had DbgState->Regs set, so it was NULL and the GUEST_REGS memcpy
dereferenced address 0.

Fix:
- Add VmFuncGetGuestRegs(CoreId) returning g_GuestState[CoreId].Regs (the
  guest GP registers saved on the last vm-exit).
- Populate DbgState->Regs from it on the two manual-halt entry points
  (DEBUGGER_VMCALL_VM_EXIT_HALT_SYSTEM and KdHandleNmi) so register reads on a
  manually-halted core return the correct values.
- Add a defensive NULL check in DebuggerCommandReadRegisters().
2026-07-19 16:53:34 +10:00
sina
bb3b09beb9 replace VMM callbacks 2026-06-09 01:37:48 +02:00
sina
cbb28edde3 refactor doxygen, variables, function names 7 2026-05-31 19:29:14 +02:00
sina
6f004f1ffd Add ARCH LBR functions from hypervisor 2026-05-01 18:40:39 +02:00
sina
469f12c645 compile HyperDbg SDK for Linux (user-mode) 2026-04-28 17:17:45 +02:00
sina
c5ba5ccd89 compile HyperDbg SDK for Linux 2026-04-28 14:39:54 +02:00
sina
af50093b9b apply LBR filters from VMX-root mode 2026-04-27 03:16:41 +02:00
sina
24875bda88 apply VM-exit and VM-entry load and save controls from VMCALLs 2026-04-23 16:42:34 +02:00
sina
efded3790b protect load and save vm-entry and vm-exit controls from setting and unsetting in different routines 2026-04-22 16:27:20 +02:00
sina
111bead68d check for hypervisor support of load and save VMCS exit and entry controls 2026-04-19 20:08:47 +02:00
sina
a1984fed70 change instances for VMWRITE into a single function 2026-04-19 16:57:48 +02:00
sina
1b08f14add add cross VMCALLs for setting core-specific LBR state 2026-04-14 19:23:51 +02:00
sina
a1d30abdf2 remove VMX instructions from hypertrace in favor of linking to hyperhv callbacks 2026-04-14 17:53:54 +02:00
sina
77029f330d
add XSETBV event extension command 2025-08-21 00:17:26 +02:00
sina
3961196112
add support for SMI related functionalities 2025-08-02 23:18:18 +02:00
sina
04e3e1e6f5
update versioning and changelog 2025-06-04 20:10:20 +02:00
unknown
0d5ee6ab60 implement microsleep function 2025-06-02 11:26:48 +02:00
SinaKarvandi
0bb3398b30 move the idt query functions from debugger to hypervisor 2024-12-30 05:04:07 +01:00
SinaKarvandi
bb9c4e30d7 add support for IO APIC 2024-11-19 13:56:22 +01:00
SinaKarvandi
a6c6c88d05 show different APIC modes (x2apic or xapic) 2024-11-09 15:08:32 +01:00
SinaKarvandi
f09fc83643 store APIC fields in user-mode constructed structures 2024-11-08 18:46:52 +01:00
SinaKarvandi
ac87707a0b add support to read Local APIC in xAPIC and x2APIC modes 2024-11-08 15:14:12 +01:00
SinaKarvandi
48c362255e build based on new libhyperdbg 2024-06-24 18:05:54 +09:00
Renamed from hyperdbg/hprdbghv/code/interface/Export.c (Browse further)