# Using HyperDbg

- [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?


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hyperdbg.org/using-hyperdbg.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.
