# 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 modules)](https://docs.hyperdbg.org/commands/debugging-commands/load.md): Description of the 'load' command in HyperDbg.
- [unload (unload 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.
- [dl (traverse through linked list using virtual address)](https://docs.hyperdbg.org/commands/debugging-commands/dl.md): Description of the 'dl' 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.
- [!dl (traverse through linked list using physical address)](https://docs.hyperdbg.org/commands/extension-commands/dl.md): Description of the '!dl' 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
