{"id":15037941,"url":"https://github.com/hyperdbg/hyperdbg","last_synced_at":"2026-02-15T23:14:35.350Z","repository":{"id":37355063,"uuid":"231214350","full_name":"HyperDbg/HyperDbg","owner":"HyperDbg","description":"State-of-the-art native debugging tools","archived":false,"fork":false,"pushed_at":"2025-04-21T17:59:11.000Z","size":44872,"stargazers_count":3219,"open_issues_count":16,"forks_count":409,"subscribers_count":88,"default_branch":"master","last_synced_at":"2025-04-30T14:06:02.367Z","etag":null,"topics":["binary-analysis","chip","debug","debugger","debugging","debugging-tool","ept","fpga","hardware","hook","hwdbg","hyperdbg","hypervisor","kernel-debugger","logic-analyzer","malware-analysis","reverse-engineering","security","security-tools","windows-kernel"],"latest_commit_sha":null,"homepage":"https://hyperdbg.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HyperDbg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-01T12:34:32.000Z","updated_at":"2025-04-28T13:27:28.000Z","dependencies_parsed_at":"2023-09-24T15:00:21.021Z","dependency_job_id":"27599e9d-13b0-461d-811e-3f6f97c7c8df","html_url":"https://github.com/HyperDbg/HyperDbg","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HyperDbg%2FHyperDbg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HyperDbg%2FHyperDbg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HyperDbg%2FHyperDbg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HyperDbg%2FHyperDbg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HyperDbg","download_url":"https://codeload.github.com/HyperDbg/HyperDbg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036832,"owners_count":22003654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary-analysis","chip","debug","debugger","debugging","debugging-tool","ept","fpga","hardware","hook","hwdbg","hyperdbg","hypervisor","kernel-debugger","logic-analyzer","malware-analysis","reverse-engineering","security","security-tools","windows-kernel"],"created_at":"2024-09-24T20:36:22.738Z","updated_at":"2026-02-15T23:14:35.344Z","avatar_url":"https://github.com/HyperDbg.png","language":"C","readme":"\u003cp align=\"left\"\u003e\n\u003ca href=\"https://hyperdbg.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Badges/Link-Website-orange.svg\" alt=\"Website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://docs.hyperdbg.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Badges/Link-Docs-yellow.svg\" alt=\"Documentation\"\u003e\u003c/a\u003e\n\u003ca href=\"https://doxygen.hyperdbg.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Badges/Link-Doxygen-lightgreen.svg\" alt=\"Doxygen\"\u003e\u003c/a\u003e\n\u003ca href=\"https://research.hyperdbg.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Badges/Link-Research-pink.svg\" alt=\"Published Academic Researches\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.gnu.org/licenses/gpl-3.0\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Badges/License-GPLv3-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# HyperDbg Debugger\n\n\u003ca href=\"https://hyperdbg.org/\"\u003e\u003cimg align=\"right\" width=\"150\" height=\"150\" src=\"https://github.com/HyperDbg/graphics/raw/master/Art%20Board/HyperDbg-Cat.Circle.Compressed.png\" alt=\"HyperDbg Debugger\"\u003e\u003c/a\u003e\u003c/br\u003e\n**HyperDbg Debugger** is a free (as in free beer), open-source, community-driven, hypervisor-assisted, user-mode, and kernel-mode Windows debugger with a focus on using modern hardware technologies. It is a debugger designed for analyzing, fuzzing, and reversing.\n\nYou can follow **HyperDbg** on **[Twitter](https://twitter.com/HyperDbg)** or **[Mastodon](https://infosec.exchange/@hyperdbg)** to get notified about new releases, or join any of the HyperDbg groups, where you can ask developers and open-source reversing enthusiasts for help setting up and using HyperDbg.\n\n- **[Telegram](https://t.me/HyperDbg)**\n- **[Discord](https://discord.gg/anSPsGUtzN)**\n- **[Matrix](https://matrix.to/#/#hyperdbg-discussion:matrix.org)**\n\n## Description\n\n**HyperDbg** is designed with a focus on using modern hardware technologies to provide new features to the debuggers' world. It operates on top of Windows by virtualizing an already running system using Intel VT-x and EPT. This debugger aims not to use any APIs and software debugging mechanisms, but instead, it uses Second Layer Page Table (a.k.a. Extended Page Table or EPT) extensively to monitor both kernel and user executions.\n\u003cp align=\"center\"\u003e\u003ca href=\"https://hyperdbg.org/\"\u003e\u003cimg align=\"center\" width=\"600\" height=\"500\" src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Art%20Board/Artboard%201.png\" alt=\"HyperDbg Debugger\"\u003e\u003c/a\u003e\u003c/br\u003e\n\u003c/p\u003e\nHyperDbg comes with features like hidden hooks, which are as fast as old inline hooks, but also stealth. It mimics hardware debug registers for (read \u0026 write) to a specific location, but this time invisible for both the Windows kernel and the programs, and of course, without any limitation in size or count!\n\nUsing TLB-splitting and having features such as measuring code coverage and monitoring all mov(s) to/from memory by a function, makes HyperDbg a unique debugger.\n\nAlthough it has novel features, HyperDbg tries to be as stealthy as possible. It doesn’t use any debugging APIs to debug Windows or any application, so classic anti-debugging methods won’t detect it. Also, it resists the exploitation of time delta methods (e.g., RDTSC/RDTSCP) to detect the presence of hypervisors, therefore making it much harder for applications, packers, protectors, malware, anti-cheat engines, etc. to discover the debugger.\n\n## Why HyperDbg?\n\nHyperDbg is harder to set up and use, and also requires deeper low-level system knowledge compared to traditional debuggers. However, it provides two major advantages:\n\n1. **Full System \u0026 OS Control**  \nHyperDbg operates at the hypervisor level, giving you powerful capabilities that are simply not possible with classic debuggers. This allows you to leverage hardware-assisted [features](https://github.com/HyperDbg/HyperDbg?tab=readme-ov-file#unique-features) for advanced reverse engineering and debugging scenarios.\n\n2. **Stealth \u0026 Detection Resistance**  \nSince HyperDbg doesn't rely on standard OS debugging APIs, it is generally much harder (though not impossible) to detect. This makes it a strong choice when working against anti-debugging protections.\n\nThese advantages open up entirely new debugging and reverse engineering techniques that go beyond what conventional debuggers can offer.\n\n## Build \u0026 Installation\n\nYou can download the latest compiled binary files from **[releases](https://github.com/HyperDbg/HyperDbg/releases)**; otherwise, if you want to build HyperDbg, you should clone HyperDbg with the `--recursive` flag.\n```\ngit clone --recursive https://github.com/HyperDbg/HyperDbg.git\n```\nPlease visit **[Build \u0026 Install](https://docs.hyperdbg.org/getting-started/build-and-install)** and **[Quick Start](https://docs.hyperdbg.org/getting-started/quick-start)** for a detailed explanation of how to start with **HyperDbg**. You can also see the **[FAQ](https://docs.hyperdbg.org/getting-started/faq)** for more information, or if you previously used other native debuggers like GDB, LLDB, or WinDbg, you could see the [command map](https://hyperdbg.github.io/commands-map).\n\n## Tutorials\n\nThe **OpenSecurityTraining2's \"Reversing with HyperDbg (Dbg3301)**\" tutorial series, available on [**OST2's website**](https://ost2.fyi/Dbg3301) (_preferred_) and [**YouTube**](https://www.youtube.com/playlist?list=PLUFkSN0XLZ-kF1f143wlw8ujlH2A45nZY) is the recommended way to get started with and learn HyperDbg. It guides you through the initial steps of using HyperDbg, covering essential concepts, principles, and debugging functionalities, along with practical examples and numerous reverse engineering methods that are unique to HyperDbg.\n\nIf you're interested in understanding the internal design and architecture of hypervisors and HyperDbg, you can read the [**Hypervisor From Scratch**](https://rayanfam.com/tutorials) tutorials.\n\n## Publications\n\nIn case you use one of **HyperDbg**'s components in your work, please consider citing our papers.\n\n**1. [HyperDbg: Reinventing Hardware-Assisted Debugging (CCS'22)](https://dl.acm.org/doi/abs/10.1145/3548606.3560649)** [[arXiv](https://arxiv.org/abs/2207.05676)]\n\n```\n@inproceedings{karvandi2022hyperdbg,\n  title={HyperDbg: Reinventing Hardware-Assisted Debugging},\n  author={Karvandi, Mohammad Sina and Gholamrezaei, MohammadHosein and Khalaj Monfared, Saleh and Meghdadizanjani, Soroush and Abbassi, Behrooz and Amini, Ali and Mortazavi, Reza and Gorgin, Saeid and Rahmati, Dara and Schwarz, Michael},\n  booktitle={Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},\n  pages={1709--1723},\n  year={2022}\n}\n```\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003eOther paper built upon HyperDbg...\u003c/b\u003e\u003c/summary\u003e\n\n\n**2. [The Reversing Machine: Reconstructing Memory Assumptions](https://arxiv.org/pdf/2405.00298)** [[arXiv](https://arxiv.org/abs/2405.00298)]\n\n```\n@article{karvandi2024reversing,\n  title={The Reversing Machine: Reconstructing Memory Assumptions},\n  author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Arasteh, Sima and Monfared, Saleh Khalaj and Fallah, Mohammad K and Gorgin, Saeid and Lee, Jeong-A and van der Kouwe, Erik},\n  journal={arXiv preprint arXiv:2405.00298},\n  year={2024}\n}\n```\n\n**3. [hwdbg: Debugging Hardware Like Software (EuroSec'25)](https://dl.acm.org/doi/abs/10.1145/3722041.3723101)** [[PDF](https://dl.acm.org/doi/pdf/10.1145/3722041.3723101)]\n\n```\n@inproceedings{karvandi2025hwdbg,\n  title={hwdbg: Debugging Hardware Like Software},\n  author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Monfared, Saleh Khalaj and van der Kouwe, Erik and Slowinska, Asia},\n  booktitle={Proceedings of the 18th European Workshop on Systems Security},\n  pages={56--62},\n  year={2025}\n}\n```\n\n\u003c/details\u003e\n\nYou can also read [this article](https://research.hyperdbg.org/debugger/kernel-debugger-design/) as it describes the overall architecture, technical difficulties, design decisions, and internals of HyperDbg Debugger, [this article](https://research.hyperdbg.org/vmm/transparency/) about our efforts on vm-exit transparency, [this article](https://research.hyperdbg.org/debugger/chasing-bugs/) about chasing bugs within hypervisors, and [this article](https://research.hyperdbg.org/debugger/gaining-insights/) about new reverse engineering techniques introduced in HyperDbg. More articles, posts, and resources are available at the **[awesome](https://github.com/HyperDbg/awesome)** repo, and in addition, the **[slides](https://github.com/HyperDbg/slides)** repo provides presentation slides for further reference.\n\n## Unique Features\n\n* Advanced Hypervisor-based Kernel Mode Debugger [\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/debug\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/local-debugging\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Classic EPT Hook (Hidden Breakpoint) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/epthook\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/hooking-any-function\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Inline EPT Hook (Inline Hook) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/epthook2\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook2\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Monitor Memory for R/W (Emulating Hardware Debug Registers Without Limitation) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/monitor\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-monitor\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/monitoring-accesses-to-structures\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* SYSCALL Hook (Disable EFER \u0026 Handle #UD) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/syscall\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-syscall-and-sysret\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/intercepting-all-syscalls\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* SYSRET Hook (Disable EFER \u0026 Handle #UD) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/sysret\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-syscall-and-sysret\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* CPUID Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/cpuid\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* RDMSR Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/msrread\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* WRMSR Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/msrwrite\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* RDTSC/RDTSCP Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/tsc\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* RDPMC Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/pmc\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* VMCALL Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/vmcall\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Debug Registers Hook \u0026 Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/dr\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* I/O Port (IN Instruction) Hook \u0026 Monitor  [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/ioin\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* I/O Port (OUT Instruction) Hook \u0026 Monitor  [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/ioout\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* MMIO Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/monitor\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Exception (IDT \u003c 32) Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/exception\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-exception-and-interrupt\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* External-Interrupt (IDT \u003e 32) Monitor [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/interrupt\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/design-of-exception-and-interrupt\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Running Automated Scripts [\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/debugger-script\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Transparent-mode and Hyperevade Project (Anti-debugging and Anti-hypervisor Resistance) [\u003ca href=\"https://docs.hyperdbg.org/tips-and-tricks/considerations/transparent-mode\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/hide\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://www.vusec.net/projects/hyperevade/\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Running Custom Assembly in Both VMX-root, VMX non-root (Kernel \u0026 User) [\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/prerequisites/how-to-create-an-action\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Checking for Custom Conditions [\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/prerequisites/how-to-create-a-condition\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/debugger-internals/conditions\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Process-specific \u0026 Thread-specific Debugging [\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.process\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.thread\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples/basics/switching-to-a-specific-process-or-thread\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* VMX-root Compatible Message Tracing [\u003ca href=\"https://docs.hyperdbg.org/design/features/vmm-module/vmx-root-mode-compatible-message-tracing\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Powerful Kernel Side Scripting Engine [\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/design/script-engine\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Support To Symbols (Parsing PDB Files) [\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.sympath\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.sym\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Mapping Data To Symbols \u0026 Create Structures, Enums From PDB Files [\u003ca href=\"https://docs.hyperdbg.org/commands/debugging-commands/dt\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/debugging-commands/struct\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/mapping-data-and-create-structures-and-enums-from-symbols\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Event Forwarding (#DFIR) [\u003ca href=\"https://docs.hyperdbg.org/tips-and-tricks/misc/event-forwarding\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/debugging-commands/output\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Transparent Breakpoint Handler [\u003ca href=\"https://docs.hyperdbg.org/commands/debugging-commands/bp\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/setting-breakpoints-and-stepping-instructions\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Various Custom Scripts [\u003ca href=\"https://github.com/HyperDbg/scripts\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* HyperDbg Software Development Kit (SDK) [\u003ca href=\"https://docs.hyperdbg.org/using-hyperdbg/sdk\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Event Short-circuiting [\u003ca href=\"https://docs.hyperdbg.org/tips-and-tricks/misc/event-short-circuiting\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_sc\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Tracking Records of Function Calls and Return Addresses [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/track\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Kernel-level Length Disassembler Engine (LDE) [\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/functions/diassembler/disassemble_len\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/functions/diassembler/disassemble_len32\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Memory Execution Monitor \u0026 Execution Blocking [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/monitor\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Custom Page-fault Injection [\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.pagein\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Different Event Calling Stages [\u003ca href=\"https://docs.hyperdbg.org/tips-and-tricks/misc/event-calling-stage\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Injecting Custom Interrupts/Exceptions/Faults [\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_inject\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/functions/events/event_inject_error_code\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Instant Events in the Debugger Mode [\u003ca href=\"https://docs.hyperdbg.org/tips-and-tricks/misc/instant-events\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Detecting Kernel-to-user and User-to-kernel Transitions [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/mode\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Physical Memory Monitoring Hooks [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/monitor\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Enumerating PCI/PCI-e Devices [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/pcitree\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Interpreting and Dumping PCI/PCI-e Configuration Space (CAM) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/pcicam\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Dumping IDT Entries, I/O APIC, and Local APIC in XAPIC and X2APIC Modes [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/idt\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/ioapic\" target=\"_blank\"\u003elink\u003c/a\u003e][\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/apic\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Triggering and Counting System Management Mode (SMM) Interrupts (SMIs) [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/smi\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Attaching to the User-mode Process and Preventing Execution [\u003ca href=\"https://docs.hyperdbg.org/commands/meta-commands/.attach\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Intercepting Execution of XSETBV Instructions [\u003ca href=\"https://docs.hyperdbg.org/commands/extension-commands/xsetbv\" target=\"_blank\"\u003elink\u003c/a\u003e]\n* Writing Library Script Files [\u003ca href=\"https://docs.hyperdbg.org/commands/scripting-language/casting-and-inclusion\" target=\"_blank\"\u003elink\u003c/a\u003e]\n\n## How does it work?\n\nYou can read about the internal design of HyperDbg and its features in the [documentation](https://docs.hyperdbg.org/design). Here's a top-level diagram that shows how HyperDbg works:\n\u003c/br\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://hyperdbg.org/\"\u003e\u003cimg align=\"center\" width=\"70%\" height=\"100%\" src=\"https://raw.githubusercontent.com/HyperDbg/graphics/master/Diagrams/Diagram-hq-v1/Diagram_v1.jpg\" alt=\"HyperDbg Design\"\u003e\u003c/a\u003e\u003c/br\u003e\n\u003c/p\u003e\n\u003c/br\u003e\n\n## Scripts\n\nYou can write your **[scripts](https://github.com/HyperDbg/scripts)** to automate your debugging journey. **HyperDbg** has a powerful, fast, and entirely kernel-side implemented [script engine](https://docs.hyperdbg.org/commands/scripting-language).\n\n## Contributing\n\nContributing to HyperDbg is super appreciated. We have made a list of potential [tasks](https://github.com/HyperDbg/HyperDbg/blob/master/CONTRIBUTING.md#things-to-work-on) that you might be interested in contributing towards.\n\nIf you want to contribute to HyperDbg, please read the [Contribution Guide](https://github.com/HyperDbg/HyperDbg/blob/master/CONTRIBUTING.md).\n\n## License\n\n**HyperDbg**, and all its submodules and repos, unless a license is otherwise specified, are licensed under **GPLv3** LICENSE.\n\nDependencies are licensed by their own.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperdbg%2Fhyperdbg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperdbg%2Fhyperdbg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperdbg%2Fhyperdbg/lists"}