# HyperDbg Documentation

## HyperDbg Documentation

- [HyperDbg](https://docs.hyperdbg.org/readme.md): A hypervisor-assisted debugger designed for analyzing, fuzzing and reversing
- [Quick Start](https://docs.hyperdbg.org/getting-started/quick-start.md): A brief overview of how to start with HyperDbg
- [FAQ](https://docs.hyperdbg.org/getting-started/faq.md): Frequently Asked Questions (FAQ)
- [Build & Install](https://docs.hyperdbg.org/getting-started/build-and-install.md): This document helps you to build and install HyperDbg
- [Attach to HyperDbg](https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg.md)
- [Attach to a remote machine](https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/debug.md): Remote debugging in VMI Mode and Debugger Mode
- [Attach to local machine](https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/local-debugging.md): Local debugging in VMI Mode
- [Start a new process](https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/start-process.md): Starting a process from entrypoint
- [Attach to a running process](https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/attach-process.md): Attaching to an already running process
- [Prerequisites](https://docs.hyperdbg.org/using-hyperdbg/prerequisites.md): This document contains essential notes that you should know before starting with HyperDbg
- [Operation Modes](https://docs.hyperdbg.org/using-hyperdbg/prerequisites/operation-modes.md): Different Modes of Operation in HyperDbg
- [How to create a condition?](https://docs.hyperdbg.org/using-hyperdbg/prerequisites/how-to-create-a-condition.md): This document helps you to create a condition for events
- [How to create an action?](https://docs.hyperdbg.org/using-hyperdbg/prerequisites/how-to-create-an-action.md): This document helps you to create an action for events
- [Signatures](https://docs.hyperdbg.org/using-hyperdbg/prerequisites/signatures.md): Different signatures in HyperDbg
- [User-mode Debugging](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging.md)
- [Principles](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/principles.md): Principles of designing a standalone user-mode debugger
- [Examples](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples.md)
- [basics](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples/basics.md)
- [events](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples/events.md)
- [Getting Results of a System-call](https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples/events/getting-results-of-a-system-call.md): Intercepting a SYSCALL and SYSRET result
- [Kernel-mode Debugging](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging.md): Principles of the kernel-mode debugger
- [Principles](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/principles.md): Principles of designing a fast and reliable kernel-mode debugger
- [Examples](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples.md)
- [beginning](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/beginning.md)
- [Connecting To HyperDbg](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/beginning/connecting-to-hyperdbg.md): Connecting & Debugging Using HyperDbg
- [Configuring Symbol Server/Path](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/beginning/configuring-symbol-server-path.md): Configuring symbol server and path
- [basics](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics.md)
- [Setting Breakpoints & Stepping Instructions](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/setting-breakpoints-and-stepping-instructions.md): Set breakpoint, Step-over, and Step-in
- [Displaying & Editing & Searching Memory](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/displaying-and-editing-and-searching-memory.md): Using d\*, e\*, and s\* commands
- [Showing & Modifying Registers and Flags](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/showing-and-modifying-registers-and-flags.md): Using the 'r' command
- [Switching to a Specific Process or Thread](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/switching-to-a-specific-process-or-thread.md): Using the '.process', and the '.thread' commands
- [Mapping Data & Create Structures, and Enums From Symbols](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/mapping-data-and-create-structures-and-enums-from-symbols.md): Using the 'dt' and the 'struct' commands
- [events](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events.md)
- [Managing Events](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/managing-events.md): Enable, Disable, and remove events
- [Hooking Any Function](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/hooking-any-function.md): Description about hooking options in HyperDbg
- [Intercepting All SYSCALLs](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/intercepting-all-syscalls.md): Getting System-Calls
- [Monitoring Accesses To Structures](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/monitoring-accesses-to-structures.md): Finding the writers and reader of memory
- [Triggering Special Instructions](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions.md): A description about hooking RDTSC, RDTSCP, I/O IN & OUT, RDPMC, etc.
- [Identifying System Behavior](https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior.md): Intercepting Exceptions, Interrupts, and MSRs
- [Software Development Kit (SDK)](https://docs.hyperdbg.org/using-hyperdbg/sdk.md): Explaining HyperDbg SDK
- [Events](https://docs.hyperdbg.org/using-hyperdbg/sdk/events.md): Details of event management
- [Conditions](https://docs.hyperdbg.org/using-hyperdbg/sdk/events/conditions.md)
- [Actions](https://docs.hyperdbg.org/using-hyperdbg/sdk/events/actions.md)
- [IOCTL](https://docs.hyperdbg.org/using-hyperdbg/sdk/ioctl.md)
- [Event Registration](https://docs.hyperdbg.org/using-hyperdbg/sdk/ioctl/event-registration.md): How to programmatically activate an event using IOCTLs?
- [Debugging Commands](https://docs.hyperdbg.org/commands/debugging-commands.md)
- [? (evaluate and execute expressions and scripts in debuggee)](https://docs.hyperdbg.org/commands/debugging-commands/eval.md): Description of the '?' command in HyperDbg.
- [~ (display and change the current operating core)](https://docs.hyperdbg.org/commands/debugging-commands/core.md): Description of the '~' command in HyperDbg.
- [a (assemble virtual address)](https://docs.hyperdbg.org/commands/debugging-commands/a.md): Description of the 'a' command in HyperDbg.
- [load (load the kernel modules)](https://docs.hyperdbg.org/commands/debugging-commands/load.md): Description of the 'load' command in HyperDbg.
- [unload (unload the kernel modules)](https://docs.hyperdbg.org/commands/debugging-commands/unload.md): Description of the 'unload' command in HyperDbg.
- [status (show the debuggee status)](https://docs.hyperdbg.org/commands/debugging-commands/status.md): Description of the 'status' command in HyperDbg.
- [events (show and modify active/disabled events)](https://docs.hyperdbg.org/commands/debugging-commands/events.md): Description of the 'event' command in HyperDbg.
- [p (step-over)](https://docs.hyperdbg.org/commands/debugging-commands/p.md): Description of the 'p' command in HyperDbg.
- [t (step-in)](https://docs.hyperdbg.org/commands/debugging-commands/t.md): Description of the 't' command in HyperDbg.
- [i (instrumentation step-in)](https://docs.hyperdbg.org/commands/debugging-commands/i.md): Description of the 'i' command in HyperDbg.
- [gu (step-out or go up)](https://docs.hyperdbg.org/commands/debugging-commands/gu.md): Description of the 'gu' command in HyperDbg.
- [r (read or modify registers)](https://docs.hyperdbg.org/commands/debugging-commands/r.md): Description of the 'r' command in HyperDbg.
- [bp (set breakpoint)](https://docs.hyperdbg.org/commands/debugging-commands/bp.md): Description of the 'bp' command in HyperDbg.
- [bl (list breakpoints)](https://docs.hyperdbg.org/commands/debugging-commands/bl.md): Description of the 'bl' command in HyperDbg.
- [be (enable breakpoints)](https://docs.hyperdbg.org/commands/debugging-commands/be.md): Description of the 'be' command in HyperDbg.
- [bd (disable breakpoints)](https://docs.hyperdbg.org/commands/debugging-commands/bd.md): Description of the 'bd' command in HyperDbg.
- [bc (clear and remove breakpoints)](https://docs.hyperdbg.org/commands/debugging-commands/bc.md): Description of the 'bc' command in HyperDbg.
- [g (continue debuggee or processing kernel packets)](https://docs.hyperdbg.org/commands/debugging-commands/g.md): Description of the 'g' command in HyperDbg.
- [x (examine symbols and find functions and variables address)](https://docs.hyperdbg.org/commands/debugging-commands/x.md): Description of the 'x' command in HyperDbg.
- [db, dc, dd, dq (read virtual memory)](https://docs.hyperdbg.org/commands/debugging-commands/d.md): Description of 'db, dc, dd, dq' commands in HyperDbg.
- [eb, ed, eq (edit virtual memory)](https://docs.hyperdbg.org/commands/debugging-commands/e.md): Description of 'eb, ed, eq' commands in HyperDbg.
- [sb, sd, sq (search virtual memory)](https://docs.hyperdbg.org/commands/debugging-commands/s.md): Description of 'sb, sd, sq' commands in HyperDbg.
- [u, u64, u2, u32 (disassemble virtual address)](https://docs.hyperdbg.org/commands/debugging-commands/u.md): Description of 'u, u64, u2, u32' commands in HyperDbg.
- [k, kd, kq (display stack backtrace)](https://docs.hyperdbg.org/commands/debugging-commands/k.md): Description of 'k, kd, kq' commands in HyperDbg.
- [dt (display and map virtual memory to structures)](https://docs.hyperdbg.org/commands/debugging-commands/dt.md): Description of the 'dt' command in HyperDbg.
- [struct (make structures, enums, data types from symbols)](https://docs.hyperdbg.org/commands/debugging-commands/struct.md): Description of the 'struct' command in HyperDbg.
- [sleep (wait for specific time in the .script command)](https://docs.hyperdbg.org/commands/debugging-commands/sleep.md): Description of the 'sleep' command in HyperDbg.
- [pause (break to the debugger and pause processing kernel packets)](https://docs.hyperdbg.org/commands/debugging-commands/pause.md): Description of the 'pause' command in HyperDbg.
- [print (evaluate and print expression in debuggee)](https://docs.hyperdbg.org/commands/debugging-commands/print.md): Description of the 'print' command in HyperDbg.
- [lm (view loaded modules)](https://docs.hyperdbg.org/commands/debugging-commands/lm.md): Description of the 'lm' command in HyperDbg.
- [cpu (check cpu supported technologies)](https://docs.hyperdbg.org/commands/debugging-commands/cpu.md): Description of the 'cpu' command in HyperDbg.
- [rdmsr (read model-specific register)](https://docs.hyperdbg.org/commands/debugging-commands/rdmsr.md): Description of the 'rdmsr' command in HyperDbg.
- [wrmsr (write model-specific register)](https://docs.hyperdbg.org/commands/debugging-commands/wrmsr.md): Description of the 'wrmsr' command in HyperDbg.
- [flush (remove pending kernel buffers and messages)](https://docs.hyperdbg.org/commands/debugging-commands/flush.md): Description of the 'flush' command in HyperDbg.
- [prealloc (reserve pre-allocated pools)](https://docs.hyperdbg.org/commands/debugging-commands/prealloc.md): Description of the 'prealloc' command in HyperDbg.
- [preactivate (pre-activate special functionalities)](https://docs.hyperdbg.org/commands/debugging-commands/preactivate.md): Description of the 'preactivate' command in HyperDbg.
- [output (create output source for event forwarding)](https://docs.hyperdbg.org/commands/debugging-commands/output.md): Description of the 'output' command in HyperDbg.
- [test (test functionalities)](https://docs.hyperdbg.org/commands/debugging-commands/test.md): Description of the 'test' command in HyperDbg.
- [settings (configures different options and preferences)](https://docs.hyperdbg.org/commands/debugging-commands/settings.md): Description of the 'settings' command in HyperDbg.
- [exit (exit from the debugger)](https://docs.hyperdbg.org/commands/debugging-commands/exit.md): Description of the 'exit' command in HyperDbg.
- [Meta Commands](https://docs.hyperdbg.org/commands/meta-commands.md)
- [.help (show the help of commands)](https://docs.hyperdbg.org/commands/meta-commands/.help.md): Description of the '.help' command in HyperDbg.
- [.debug (prepare and connect to debugger)](https://docs.hyperdbg.org/commands/meta-commands/.debug.md): Description of the '.debug' command in HyperDbg.
- [.connect (connect to a session)](https://docs.hyperdbg.org/commands/meta-commands/.connect.md): Description of the '.connect' command in HyperDbg.
- [.disconnect (disconnect from a session)](https://docs.hyperdbg.org/commands/meta-commands/.disconnect.md): Description of the '.disconnect' command in HyperDbg.
- [.listen (listen on a port and wait for the debugger to connect)](https://docs.hyperdbg.org/commands/meta-commands/.listen.md): Description of the '.listen' command in HyperDbg.
- [.status (show the debugger status)](https://docs.hyperdbg.org/commands/meta-commands/.status.md): Description of the '.status' command in HyperDbg.
- [.start (start a new process)](https://docs.hyperdbg.org/commands/meta-commands/.start.md): Description of the '.start' command in HyperDbg.
- [.restart (restart the process)](https://docs.hyperdbg.org/commands/meta-commands/.restart.md): Description of the '.restart' command in HyperDbg.
- [.attach (attach to a process)](https://docs.hyperdbg.org/commands/meta-commands/.attach.md): Description of the '.attach' command in HyperDbg.
- [.detach (detach from the process)](https://docs.hyperdbg.org/commands/meta-commands/.detach.md): Description of the '.detach' command in HyperDbg.
- [.switch (show the list and switch between active debugging processes)](https://docs.hyperdbg.org/commands/meta-commands/.switch.md): Description of the '.switch' command in HyperDbg.
- [.kill (terminate the process)](https://docs.hyperdbg.org/commands/meta-commands/.kill.md): Description of the '.kill' command in HyperDbg.
- [.process, .process2 (show the current process and switch to another process)](https://docs.hyperdbg.org/commands/meta-commands/.process.md): Description of '.process, .process2' commands in HyperDbg.
- [.thread, .thread2 (show the current thread and switch to another thread)](https://docs.hyperdbg.org/commands/meta-commands/.thread.md): Description of '.thread, .thread2' commands in HyperDbg.
- [.pagein (bring the page into the RAM)](https://docs.hyperdbg.org/commands/meta-commands/.pagein.md): Description of the '.pagein' command in HyperDbg.
- [.dump (save the virtual memory into a file)](https://docs.hyperdbg.org/commands/meta-commands/.dump.md): Description of the '.dump' command in HyperDbg.
- [.formats (show number formats)](https://docs.hyperdbg.org/commands/meta-commands/.formats.md): Description of the '.formats' command in HyperDbg.
- [.script (run batch script commands)](https://docs.hyperdbg.org/commands/meta-commands/.script.md): Description of the '.script' command in HyperDbg.
- [.sympath (set the symbol server)](https://docs.hyperdbg.org/commands/meta-commands/.sympath.md): Description of the '.sympath' command in HyperDbg.
- [.sym (load pdb symbols)](https://docs.hyperdbg.org/commands/meta-commands/.sym.md): Description of the '.sym' command in HyperDbg.
- [.pe (parse PE file)](https://docs.hyperdbg.org/commands/meta-commands/.pe.md): Description of the '.pe' command in HyperDbg.
- [.logopen (open log file)](https://docs.hyperdbg.org/commands/meta-commands/.logopen.md): Description of the '.logopen' command in HyperDbg.
- [.logclose (close log file)](https://docs.hyperdbg.org/commands/meta-commands/.logclose.md): Description of the '.logclose' command in HyperDbg.
- [.cls (clear the screen)](https://docs.hyperdbg.org/commands/meta-commands/.cls.md): Description of the '.cls' command in HyperDbg.
- [Extension Commands](https://docs.hyperdbg.org/commands/extension-commands.md)
- [!a (assemble physical address)](https://docs.hyperdbg.org/commands/extension-commands/a.md): Description of the '!a' command in HyperDbg.
- [!pte (display page-level address and entries)](https://docs.hyperdbg.org/commands/extension-commands/pte.md): Description of the '!pte' command in HyperDbg.
- [!db, !dc, !dd, !dq (read physical memory)](https://docs.hyperdbg.org/commands/extension-commands/d.md): Description of '!db, !dc, !dd, !dq' commands in HyperDbg.
- [!eb, !ed, !eq (edit physical memory)](https://docs.hyperdbg.org/commands/extension-commands/e.md): Description of '!eb, !ed, !eq' commands in HyperDbg.
- [!sb, !sd, !sq (search physical memory)](https://docs.hyperdbg.org/commands/extension-commands/s.md): Description of '!sb, !sd, !sq' commands in HyperDbg.
- [!u, !u64, !u2, !u32 (disassemble physical address)](https://docs.hyperdbg.org/commands/extension-commands/u.md): Description of '!u, !u64, !u2 !u32' commands in HyperDbg.
- [!dt (display and map physical memory to structures)](https://docs.hyperdbg.org/commands/extension-commands/dt.md): Description of the '!dt' command in HyperDbg.
- [!track (track and map function calls and returns to the symbols)](https://docs.hyperdbg.org/commands/extension-commands/track.md): Description of the '!track' command in HyperDbg.
- [!epthook (hidden hook with EPT - stealth breakpoints)](https://docs.hyperdbg.org/commands/extension-commands/epthook.md): Description of the '!epthook' command in HyperDbg.
- [!epthook2 (hidden hook with EPT - detours)](https://docs.hyperdbg.org/commands/extension-commands/epthook2.md): Description of the '!epthook2' command in HyperDbg.
- [!monitor (monitor read/write/execute to a range of memory)](https://docs.hyperdbg.org/commands/extension-commands/monitor.md): Description of the '!monitor' command in HyperDbg.
- [!syscall, !syscall2 (hook system-calls)](https://docs.hyperdbg.org/commands/extension-commands/syscall.md): Description of '!syscall, !syscall2' commands in HyperDbg.
- [!sysret, !sysret2 (hook SYSRET instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/sysret.md): Description of '!sysret, !sysret2' commands in HyperDbg.
- [!mode (detect kernel-to-user and user-to-kernel transitions)](https://docs.hyperdbg.org/commands/extension-commands/mode.md): Description of the '!mode' command in HyperDbg.
- [!cpuid (hook CPUID instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/cpuid.md): Description of the '!cpuid' command in HyperDbg.
- [!msrread (hook RDMSR instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/msrread.md): Description of the '!msrread' command in HyperDbg.
- [!msrwrite (hook WRMSR instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/msrwrite.md): Description of the '!msrwrite' command in HyperDbg.
- [!tsc (hook RDTSC/RDTSCP instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/tsc.md): Description of the '!tsc' command in HyperDbg.
- [!pmc (hook RDPMC instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/pmc.md): Description of the '!pmc' command in HyperDbg.
- [!vmcall (hook hypercalls)](https://docs.hyperdbg.org/commands/extension-commands/vmcall.md): Description of the '!vmcall' command in HyperDbg.
- [!exception (hook first 32 entries of IDT)](https://docs.hyperdbg.org/commands/extension-commands/exception.md): Description of the '!exception' command in HyperDbg.
- [!interrupt (hook external device interrupts)](https://docs.hyperdbg.org/commands/extension-commands/interrupt.md): Description of the '!interrupt' command in HyperDbg.
- [!dr (hook access to debug registers)](https://docs.hyperdbg.org/commands/extension-commands/dr.md): Description of the '!dr' command in HyperDbg.
- [!ioin (hook IN instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/ioin.md): Description of the '!ioin' command in HyperDbg.
- [!ioout (hook OUT instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/ioout.md): Description of the '!ioout' command in HyperDbg.
- [!xsetbv (hook XSETBV instruction execution)](https://docs.hyperdbg.org/commands/extension-commands/xsetbv.md): Description of the '!xsetbv' command in HyperDbg.
- [!hide (enable transparent-mode)](https://docs.hyperdbg.org/commands/extension-commands/hide.md): Description of the '!hide' command in HyperDbg.
- [!unhide (disable transparent-mode)](https://docs.hyperdbg.org/commands/extension-commands/unhide.md): Description of the '!unhide' command in HyperDbg.
- [!measure (measuring and providing details for transparent-mode)](https://docs.hyperdbg.org/commands/extension-commands/measure.md): Description of the '!measure' command in HyperDbg.
- [!va2pa (convert a virtual address to physical address)](https://docs.hyperdbg.org/commands/extension-commands/va2pa.md): Description of the '!va2pa' command in HyperDbg.
- [!pa2va (convert physical address to virtual address)](https://docs.hyperdbg.org/commands/extension-commands/pa2va.md): Description of '!pa2va' command in HyperDbg.
- [!dump (save the physical memory into a file)](https://docs.hyperdbg.org/commands/extension-commands/dump.md): Description of '!dump' command in HyperDbg.
- [!pcitree (show PCI/PCIe device tree)](https://docs.hyperdbg.org/commands/extension-commands/pcitree.md): Description of '!pcitree' command in HyperDbg.
- [!pcicam (dump the PCI/PCIe configuration space)](https://docs.hyperdbg.org/commands/extension-commands/pcicam.md): Description of '!pcicam' command in HyperDbg.
- [!idt (show Interrupt Descriptor Table entries)](https://docs.hyperdbg.org/commands/extension-commands/idt.md): Description of '!idt' command in HyperDbg.
- [!smi (trigger and show System Management Interrupt functionalities)](https://docs.hyperdbg.org/commands/extension-commands/smi.md): Description of '!smi' command in HyperDbg.
- [!apic (dump local APIC entries in XAPIC and X2APIC modes)](https://docs.hyperdbg.org/commands/extension-commands/apic.md): Description of '!apic' command in HyperDbg.
- [!ioapic (dump I/O APIC)](https://docs.hyperdbg.org/commands/extension-commands/ioapic.md): Description of '!ioapic' command in HyperDbg.
- [!lbr (tracing branches using Last Branch Record)](https://docs.hyperdbg.org/commands/extension-commands/lbr.md): Description of '!lbr' command in HyperDbg.
- [!lbrdump (dump Last Branch Record entries)](https://docs.hyperdbg.org/commands/extension-commands/lbrdump.md): Description of '!lbrdump' command in HyperDbg.
- [Scripting Language](https://docs.hyperdbg.org/commands/scripting-language.md)
- [Assumptions & Evaluations](https://docs.hyperdbg.org/commands/scripting-language/assumptions-and-evaluations.md): Description of keywords, operators, pseudo-registers, number prefixes, and pre-defined functions
- [Variables & Assignments](https://docs.hyperdbg.org/commands/scripting-language/variables-and-assignments.md): Description of variables and assignments
- [Casting & Inclusion](https://docs.hyperdbg.org/commands/scripting-language/casting-and-inclusion.md): Description of casting (type-awareness) and file (library) inclusion
- [Conditionals & Loops](https://docs.hyperdbg.org/commands/scripting-language/conditionals-and-loops.md): Description of conditional statements and loops
- [Constants & Functions](https://docs.hyperdbg.org/commands/scripting-language/constants-and-functions.md): Description of constants and functions
- [Debugger Script (DS)](https://docs.hyperdbg.org/commands/scripting-language/debugger-script.md): Description of HyperDbg Debugger Scripts
- [Examples](https://docs.hyperdbg.org/commands/scripting-language/examples.md)
- [view system state (registers, memory, variables)](https://docs.hyperdbg.org/commands/scripting-language/examples/view-system-state.md): An example of valid expressions to read the state of the system
- [change system state (registers, memory, variables)](https://docs.hyperdbg.org/commands/scripting-language/examples/change-system-state-registers-memory-variables.md): An example of changing system state
- [trace function calls](https://docs.hyperdbg.org/commands/scripting-language/examples/trace-function-calls.md): An example of creating logs from NtOpenFile
- [pause the debugger conditionally](https://docs.hyperdbg.org/commands/scripting-language/examples/pause-the-debugger-conditionally.md): An example of pausing system while a special path is passed to the NtCreateFile
- [conditional breakpoints and events](https://docs.hyperdbg.org/commands/scripting-language/examples/conditional-breakpoints-and-events.md): An example of using conditional breakpoint (events)
- [patch the normal sequence of execution](https://docs.hyperdbg.org/commands/scripting-language/examples/patch-the-normal-sequence-of-execution.md): An example of patching eflags of the target program
- [access to a shared variable from different cores](https://docs.hyperdbg.org/commands/scripting-language/examples/access-to-a-shared-variable-from-different-cores.md): An example of sharing global variables between different cores
- [count occurrences of events](https://docs.hyperdbg.org/commands/scripting-language/examples/count-occurrences-of-events.md): An example of counting the occurrence of page-faults
- [Functions](https://docs.hyperdbg.org/commands/scripting-language/functions.md): List of HyperDbg functions
- [debugger](https://docs.hyperdbg.org/commands/scripting-language/functions/debugger.md): Functions related to the debugger
- [pause](https://docs.hyperdbg.org/commands/scripting-language/functions/debugger/pause.md): Description of the 'pause' function in HyperDbg Scripts
- [events](https://docs.hyperdbg.org/commands/scripting-language/functions/events.md): Functions related to events
- [event\_enable](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_enable.md): Description of the 'event\_enable' function in HyperDbg Scripts
- [event\_disable](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_disable.md): Description of the 'event\_disable' function in HyperDbg Scripts
- [event\_clear](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_clear.md): Description of the 'event\_clear' function in HyperDbg Scripts
- [event\_sc](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_sc.md): Description of the 'event\_enable' function in HyperDbg Scripts
- [event\_inject](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_inject.md): Description of the 'event\_inject' function in HyperDbg Scripts
- [event\_inject\_error\_code](https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_inject_error_code.md): Description of the 'event\_inject\_error\_code' function in HyperDbg Scripts
- [flush](https://docs.hyperdbg.org/commands/scripting-language/functions/events/flush.md): Description of the 'flush' function in HyperDbg Scripts
- [exports](https://docs.hyperdbg.org/commands/scripting-language/functions/exports.md): Functions for exporting and printing messages
- [print](https://docs.hyperdbg.org/commands/scripting-language/functions/exports/print.md): Description of the 'print' function in HyperDbg Scripts
- [printf](https://docs.hyperdbg.org/commands/scripting-language/functions/exports/printf.md): Description of the 'printf' function in HyperDbg Scripts
- [interlocked](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked.md): Interlocked and atomic functions
- [interlocked\_compare\_exchange](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked/interlocked_compare_exchange.md): Description of the 'interlocked\_compare\_exchange' function in HyperDbg Scripts
- [interlocked\_decrement](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked/interlocked_decrement.md): Description of the 'interlocked\_decrement' function in HyperDbg Scripts
- [interlocked\_exchange](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked/interlocked_exchange.md): Description of the 'interlocked\_exchange' function in HyperDbg Scripts
- [interlocked\_exchange\_add](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked/interlocked_exchange_add.md): Description of the 'interlocked\_exchange\_add' function in HyperDbg Scripts
- [interlocked\_increment](https://docs.hyperdbg.org/commands/scripting-language/functions/interlocked/interlocked_increment.md): Description of the 'interlocked\_increment' function in HyperDbg Scripts
- [memory](https://docs.hyperdbg.org/commands/scripting-language/functions/memory.md): Functions related to the memory
- [check\_address](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/check_address.md): Description of the 'check\_address' function in HyperDbg Scripts
- [eb, ed, eq](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/eb-ed-eq.md): Description of 'eb', 'ed', and 'eq' functions in HyperDbg Scripts
- [eb\_pa, ed\_pa, eq\_pa](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/eb_pa-ed_pa-eq_pa.md): Description of 'eb\_pa', 'ed\_pa', and 'eq\_pa' functions in HyperDbg Scripts
- [memcpy](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/memcpy.md): Description of the 'memcpy' function in HyperDbg Scripts
- [memcpy\_pa](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/memcpy_pa.md): Description of the 'memcpy\_pa' function in HyperDbg Scripts
- [memcmp](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/memcmp.md): Description of the 'memcmp' function in HyperDbg Scripts
- [virtual\_to\_physical](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/virtual_to_physical.md): Description of the 'virtual\_to\_physical' function in HyperDbg Scripts
- [physical\_to\_virtual](https://docs.hyperdbg.org/commands/scripting-language/functions/memory/physical_to_virtual.md): Description of the 'physical\_to\_virtual' function in HyperDbg Scripts
- [strings](https://docs.hyperdbg.org/commands/scripting-language/functions/strings.md): Functions related to strings
- [strlen](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/strlen.md): Description of the 'strlen' function in HyperDbg Scripts
- [wcslen](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/wcslen.md): Description of the 'wcslen' function in HyperDbg Scripts
- [strcmp](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/strcmp.md): Description of the 'strcmp' function in HyperDbg Scripts
- [strncmp](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/strncmp.md): Description of the 'strncmp' function in HyperDbg Scripts
- [wcscmp](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/wcscmp.md): Description of the 'wcscmp' function in HyperDbg Scripts
- [wcsncmp](https://docs.hyperdbg.org/commands/scripting-language/functions/strings/wcsncmp.md): Description of the 'wcsncmp' function in HyperDbg Scripts
- [diassembler](https://docs.hyperdbg.org/commands/scripting-language/functions/diassembler.md)
- [disassemble\_len](https://docs.hyperdbg.org/commands/scripting-language/functions/diassembler/disassemble_len.md): Description of the 'disassemble\_len' function in HyperDbg Scripts
- [disassemble\_len32](https://docs.hyperdbg.org/commands/scripting-language/functions/diassembler/disassemble_len32.md): Description of the 'disassemble\_len32' function in HyperDbg Scripts
- [spinlocks](https://docs.hyperdbg.org/commands/scripting-language/functions/spinlocks.md): Functions related to spinlocks
- [spinlock\_lock](https://docs.hyperdbg.org/commands/scripting-language/functions/spinlocks/spinlock_lock.md): Description of the 'spinlock\_lock' function in HyperDbg Scripts
- [spinlock\_lock\_custom\_wait](https://docs.hyperdbg.org/commands/scripting-language/functions/spinlocks/spinlock_lock_custom_wait.md): Description of the 'spinlock\_lock\_custom\_wait' function in HyperDbg Scripts
- [spinlock\_unlock](https://docs.hyperdbg.org/commands/scripting-language/functions/spinlocks/spinlock_unlock.md): Description of the 'spinlock\_unlock' function in HyperDbg Scripts
- [tracing](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing.md): Functions related to tracing mechanisms (HyperTrace)
- [Last Branch Record (LBR)](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr.md): Functions related to LBR mechanisms
- [lbr\_save](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr/lbr_save.md): Description of the 'lbr\_save' function in HyperDbg Scripts
- [lbr\_print](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr/lbr_print.md): Description of the 'lbr\_print' function in HyperDbg Scripts
- [lbr\_check](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr/lbr_check.md): Description of the 'lbr\_check' function in HyperDbg Scripts
- [lbr\_restore](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr/lbr_restore.md): Description of the 'lbr\_restore' function in HyperDbg Scripts
- [lbr\_restore\_by\_filter](https://docs.hyperdbg.org/commands/scripting-language/functions/tracing/lbr/lbr_restore_by_filter.md): Description of the 'lbr\_restore\_by\_filter' function in HyperDbg Scripts
- [timings](https://docs.hyperdbg.org/commands/scripting-language/functions/timings.md)
- [rdtsc](https://docs.hyperdbg.org/commands/scripting-language/functions/timings/rdtsc.md): Description of the 'rdtsc' function in HyperDbg Scripts
- [rdtscp](https://docs.hyperdbg.org/commands/scripting-language/functions/timings/rdtscp.md): Description of the 'rdtscp' function in HyperDbg Scripts
- [microsleep](https://docs.hyperdbg.org/commands/scripting-language/functions/timings/microsleep.md): Description of the 'microsleep' function in HyperDbg Scripts
- [Considerations](https://docs.hyperdbg.org/tips-and-tricks/considerations.md)
- [Basic concepts in Intel VT-x](https://docs.hyperdbg.org/tips-and-tricks/considerations/basic-concepts-in-intel-vt-x.md): The things you should know before start using HyperDbg
- [VMX root-mode vs VMX non-root mode](https://docs.hyperdbg.org/tips-and-tricks/considerations/vmx-root-mode-vs-vmx-non-root-mode.md): What is vmx-root mode and what is vmx non-root mode?
- [The "unsafe" behavior](https://docs.hyperdbg.org/tips-and-tricks/considerations/the-unsafe-behavior.md): What is "unsafe" behavior in using HyperDbg
- [Script engine in VMX non-root mode](https://docs.hyperdbg.org/tips-and-tricks/considerations/script-engine-in-vmx-non-root-mode.md): Description of considerations and limitations in using script engine in vmx non-root mode
- [Difference between process and thread switching commands](https://docs.hyperdbg.org/tips-and-tricks/considerations/difference-between-process-and-thread-switching-commands.md): When to use '.process', '.process2', '.thread', and '.thread2' commands
- [Accessing Invalid Address](https://docs.hyperdbg.org/tips-and-tricks/considerations/accessing-invalid-address.md): Considerations for accessing memory in different modes
- [Transparent Mode](https://docs.hyperdbg.org/tips-and-tricks/considerations/transparent-mode.md): Description about HyperDbg Transparent-mode
- [Nested-Virtualization Environments](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments.md): Notes about running HyperDbg on Nested-Virtualization Environments
- [Supported Virtual Machines](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments/supported-virtual-machines.md): HyperDbg support for nested virtualization
- [Run HyperDbg on VMware](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments/run-hyperdbg-on-vmware.md): How to run HyperDbg on VMware nested-virtualization?
- [Run HyperDbg on Hyper-V](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments/run-hyperdbg-on-hyper-v.md): How to run HyperDbg on Hyper-V nested-virtualization?
- [Supporting VMware/Hyper-V](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments/supporting-vmware-hyper-v.md): Compatibility between VMware and Hyper-V
- [VMware backdoor I/O ports](https://docs.hyperdbg.org/tips-and-tricks/nested-virtualization-environments/vmware-backdoor-io-ports.md): Description about the state of using !ioin and !ioout in VMware nested virtualization
- [Misc](https://docs.hyperdbg.org/tips-and-tricks/misc.md): Miscellaneous topics
- [Event forwarding](https://docs.hyperdbg.org/tips-and-tricks/misc/event-forwarding.md): Brief explanation about Event Forwarding Mechanism
- [Event short-circuiting](https://docs.hyperdbg.org/tips-and-tricks/misc/event-short-circuiting.md): The event short-circuiting and ignoring mechanism in HyperDbg
- [Event calling stage](https://docs.hyperdbg.org/tips-and-tricks/misc/event-calling-stage.md): The event calling stage in HyperDbg
- [Instant events](https://docs.hyperdbg.org/tips-and-tricks/misc/instant-events.md): The instant event mechanism in HyperDbg
- [Message overflow](https://docs.hyperdbg.org/tips-and-tricks/misc/message-overflow.md): Kernel Message Tracing Overflow
- [Customize build](https://docs.hyperdbg.org/tips-and-tricks/misc/customize-build.md): Description about customizing HyperDbg builds
- [Increase Communication Buffer Size](https://docs.hyperdbg.org/tips-and-tricks/misc/customize-build/increase-communication-buffer-size.md): Increasing the buffer size for kHyperDbg communication
- [Number of EPT Hooks in One Page](https://docs.hyperdbg.org/tips-and-tricks/misc/customize-build/number-of-ept-hooks-in-one-page.md): Increasing the number of EPT hooks in one page
- [Change Script Engine Limitations](https://docs.hyperdbg.org/tips-and-tricks/misc/customize-build/change-script-engine-limitations.md): Changing the execution constants of the script engine
- [Enable and disable events in Debugger Mode](https://docs.hyperdbg.org/tips-and-tricks/misc/enable-and-disable-events-in-debugger-mode.md): Methods to disable or enable events when the debuggee is halted
- [Switch to New Process Layout](https://docs.hyperdbg.org/tips-and-tricks/misc/switch-to-new-process-layout.md): Methods to switch to the target process's memory layout (CR3)
- [Style Guide](https://docs.hyperdbg.org/contribution/style-guide.md): Coding style guides
- [Coding style](https://docs.hyperdbg.org/contribution/style-guide/coding-style.md): This guide introduces a consistent style for writing codes for HyperDbg.
- [Command style](https://docs.hyperdbg.org/contribution/style-guide/command-style.md): The command style of HyperDbg
- [Doxygen style](https://docs.hyperdbg.org/contribution/style-guide/doxygen-style.md): This guide introduces a consistent style for documenting HyperDbg source code using Doxygen
- [Logo & Artworks](https://docs.hyperdbg.org/contribution/logo.md): Logo & Artworks of HyperDbg
- [Features](https://docs.hyperdbg.org/design/features.md)
- [VMM (Module)](https://docs.hyperdbg.org/design/features/vmm-module.md)
- [Control over NMIs](https://docs.hyperdbg.org/design/features/vmm-module/control-over-nmis.md): Different controlling fields about NMIs in Intel VT-x
- [VMX root-mode compatible message tracing](https://docs.hyperdbg.org/design/features/vmm-module/vmx-root-mode-compatible-message-tracing.md): How we transfer the buffers safely from the kernel and vmx-root to the debugger
- [Design of !epthook](https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook.md): Design of !epthook command
- [Design of !epthook2](https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook2.md): Design of !epthook2 command
- [Design of !monitor](https://docs.hyperdbg.org/design/features/vmm-module/design-of-monitor.md): Design of !monitor command
- [Design of !syscall & !sysret](https://docs.hyperdbg.org/design/features/vmm-module/design-of-syscall-and-sysret.md): Design of !syscall and !sysret command
- [Design of !exception & !interrupt](https://docs.hyperdbg.org/design/features/vmm-module/design-of-exception-and-interrupt.md): Design of !exception and !interrupt command
- [Debugger Internals](https://docs.hyperdbg.org/design/debugger-internals.md): Learn more, how we designed HyperDbg
- [Events](https://docs.hyperdbg.org/design/debugger-internals/events.md): What are events in HyperDbg & how to use them?
- [Conditions](https://docs.hyperdbg.org/design/debugger-internals/conditions.md): What is conditions in HyperDbg & how to use them?
- [Actions](https://docs.hyperdbg.org/design/debugger-internals/actions.md): What is actions in HyperDbg & how to use them?
- [Kernel Debugger](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger.md)
- [Design Perspective](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger/design-perspective.md): Description of high-level design of kernel debugger
- [Connection](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger/connection.md): The connection mechanism of HyperDbg in Debugger mode


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://docs.hyperdbg.org/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
