HyperDbg debugger is an open-source, hypervisor-assisted user-mode, and kernel-mode Windows debugger 🐞

Overview

Website Documentation Doxygen License Twitter

HyperDbg Debugger

HyperDbg Debugger

(HyperDbg is NOT in a WORKING STATE - YOU SHOULD NOT USE IT, but you can observe codes, please wait for first release in late June 2021)

We planned for first-release in late June 2021

HyperDbg debugger is an open-source, 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.

Follow HyperDbg on Twitter to get notified about new releases !

(https://twitter.com/HyperDbg)

Description

HyperDbg is designed with a focus on using modern hardware technologies to provide new features to the reverse engineering world. It operates on top of Windows by virtualizing an already running system using Intel VT-x and Intel PT. 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.

HyperDbg Debugger

HyperDbg comes with features like hidden hooks, which is as fast as old inline hooks, but also stealth. It mimics hardware debug registers for (read & write) to a specific location, but this time entirely invisible for both Windows kernel and the programs, and of course without any limitation in size or count!

Using 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.

Although it has novel features, HyperDbg tries to be as stealth 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.

Unique Features

First Release (v0.1.0.0)

  • Classic EPT Hook (Hidden Breakpoint) [link][link]
  • Inline EPT Hook (Inline Hook) [link][link]
  • Monitor Memory For R/W (Emulating Hardware Debug Registers Without Limitation) [link][link]
  • SYSCALL Hook (Disable EFER & Handle #UD) [link][link]
  • SYSRET Hook (Disable EFER & Handle #UD) [link][link]
  • CPUID Hook & Monitor [link]
  • RDMSR Hook & Monitor [link]
  • WRMSR Hook & Monitor [link]
  • RDTSC/RDTSCP Hook & Monitor [link]
  • RDPMC Hook & Monitor [link]
  • VMCALL Hook & Monitor [link]
  • Debug Registers Hook & Monitor [link]
  • I/O Port (In Instruction) Hook & Monitor [link]
  • I/O Port (Out Instruction) Hook & Monitor [link]
  • MMIO Monitor
  • Exception (IDT < 32) Monitor [link][link]
  • External-Interrupt (IDT > 32) Monitor [link][link]
  • Running Automated Scripts [link]
  • Transparent-mode (Anti-debugging and Anti-hypervisor Resistance) [link][link]
  • Running Custom Assembly In Both VMX-root, VMX non-root (Kernel & User) [link]
  • Checking For Custom Conditions [link][link]
  • VMX-root Compatible Message Tracing [link]
  • Powerful Kernel Side Scripting Engine [link][link]
  • Event Forwarding (#DFIR) [link][link]
  • Transparent Breakpoint Handler
  • Various Custom Scripts [link]

Second Release (v0.2.0.0)

(not released yet !)

Build & Installation

If you want to build HyperDbg, you should clone HyperDbg with --recursive flag.

git clone --recursive https://github.com/HyperDbg/HyperDbg.git

Please visit Build & Install and Quick Start for a detailed explanation of how to start with HyperDbg. You can also see FAQ for more information.

How does it work?

We explained about how HyperDbg internally works and how we designed its features in details, take a look at :

(https://docs.hyperdbg.com/design)

Here's a diagram that shows how HyperDbg works !

HyperDbg Design


Plugins

The plugin framework is not ready for the current version of HyperDbg. Future versions will support plugins.

Donations to charity

We spent thousands of hours on HyperDbg and it's free and open-source for you, If you want to help to develop HyperDbg, please donate to children in Africa and send a picture of your donation to us, this makes all HyperDbg developers, super happy! Don't hesitate to send us the pictures, this way we know that we're doing something useful.

(https://www.compassion.com/donate/donate-to-children-in-africa.htm)

Credits

Contributing

Contributing in HyperDbg is super appreciated.

If you want to create a pull request or contribute in HyperDbg please read Contribution Guide.

License

Dependencies are licensed by their own licenses.

HyperDbg is under GPLv3 LICENSE.

Comments
  • Bsod

    Bsod

    System is bsodding on certain code parts when stepping instructions. any fix for this?

    Bugcheck: DRIVER_IRQL_NOT_LESS_OR_EQUAL on latest release hprdbghv.sys+1b27a

    opened by m853ax 65
  • NtWriteFile hook implementation

    NtWriteFile hook implementation

    NtWriteFile/NtCreateFile hook causes a VM Exit for EPT Misconfiguration

    Windows version : 2004 Processor: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (12 CPUs), ~2.6GHz

    opened by Souhardya 32
  • SyscallHookHandleUD of SyscallHookHandleUD will blue screen in some versions of the system

    SyscallHookHandleUD of SyscallHookHandleUD will blue screen in some versions of the system

    I found that IS_SYSCALL_INSTRUCTION in SyscallHookHandleUD did not judge the instruction length, which would cause a blue screen in some cases due to access to invalid memory.

    bug 
    opened by wuhao13 26
  • .debug command error

    .debug command error

    os version:Win10 x64 1903,

    Driver signature has been turned off

    HyperDbg-cli tip: err,startservice failure unable to install driver failed to install or load the driver

    opened by botao1995 18
  • BUG TransparentRandn

    BUG TransparentRandn

    There appears to be a bug, get the value of this function often significantly more than expected in TransparentRandn, which can cause a lot of problems.

    bug invalid 
    opened by wuhao13 17
  • Failed to install or load the driver

    Failed to install or load the driver

    I am getting Failed to install or load the driver when .debug prepare serial or .debug local(load vmm) tested on 1909 and 2004 tested on local and vmware

    Is this supposed to work? or cuz it hasn`t been released yet?

    opened by Chrys4lisfag 12
  • vs2019 community build error

    vs2019 community build error

    严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 __stdio_common_vsprintf,函数 _vsnprintf_l 中引用了该符号 hprdbghv D:\code\HyperDbg\hyperdbg\hprdbghv\Debugger.obj 1 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 __stdio_common_vsprintf_s,函数 _vsprintf_s_l 中引用了该符号 hprdbghv D:\code\HyperDbg\hyperdbg\hprdbghv\Logging.obj 1

    opened by botao1995 11
  • The EferHook problem could not be closed properly

    The EferHook problem could not be closed properly

    Hello, I found a problem about closing the EferHook blue screen.The problem is that the system continues to generate #UD exceptions when SyscallEnable is set to True.

    bug 
    opened by wuhao13 10
  • Crashed inside hyper-v's guest machine when load vmm

    Crashed inside hyper-v's guest machine when load vmm

    Describe the bug Crashed inside hyper-v's guest machine when load vmm Vritualize Platform: Hyper-v with Nested Virtualization Host OS: 19041 Guest OS: 17763 or 19041

    To Reproduce Steps to reproduce the behavior:

    1. Install Hyper-V Manager in your host OS
    2. Install guest OS by Hyper-V
    3. Enable Nested Virtualization 'Set-VMProcessor -VMName $yourvmname -ExposeVirtualizationExtensions $true'
    4. Run hyperdbg-cli.exe inside guest os and load vmm by local mode
    5. See error

    Expected behavior Guest OS will crash

    Screenshots VM crashed

    Desktop (please complete the following information):

    • Host OS: 19041
    • Guest OS: 17763 or 19041
    • Processor [Intel i9-12900K]
    • Version [hyperdbg master]
    • Environment [Hyper-v with Nested Virtualization]
    bug help wanted 
    opened by gmh5225 7
  • Crash relating to %ws in printf

    Crash relating to %ws in printf

    Hello Sina

    Crashing occured to me without VMWARE (running it in native Win10) when running: !epthook nt!NtOpenFile pid 12249 script { printf("%ws\n", dq(poi(r8 + 10) + 0x8)); } This doesnt crash imediately ,it takes few tens of seconds, while printing various filenames.

    I have 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz Windows 10 Pro 20H2 19042.1348

    No minidumps were created , just a huge c:\windows\memory.dmp , you can download it from: https://mega.nz/file/uh82na7K#JkUIvQylBOFC4gccvkF7TKLKf6WmO53rQAW9cvUOW9s

    Running !epthook nt!NtOpenFile script { printf("%llx\n", @r8); } didn't trigger any crash so far.

    There is a difference in output compared to your screenshot in docs.Your prntsc displays only filenames, on my system it displays rows containing filenames and rows displaying numbers.

    EDIT: "!epthook nt!NtOpenFile pid 12249" -> I noticed now that I specified process pid in decimal. Is this wrong, should I put it in hex? Either way , HyperDbg shouldnt produce a BSOD.

    Thanks

    Originally posted by @DarkerSquirrel in https://github.com/HyperDbg/HyperDbg/issues/66#issuecomment-986815059

    bug fixed 
    opened by SinaKarvandi 7
  • VMWare Fusion 12.2.0 not supported?

    VMWare Fusion 12.2.0 not supported?

    I'm trying the following Setup

    • Host OSX Big Sur (11.6)
    • VMWare Fusion 12.2.0
    • Client Windosw 10 (10.0.18363)

    VMWare settings according the documentation [https://docs.hyperdbg.org/using-hyperdbg/examples/connecting-to-hyperdbg] It seems to work:

    HyperDbg> .connect local
    local debugging (vmi-mode)
    
    HyperDbg> load vmm
    loading the vmm driver
    current processor vendor is : GenuineIntel
    virtualization technology is vt-x
    vmx operation is supported by your processor
    vmm module is running...
    please configure the symbol path (use '.help .sympath' for more information)
    

    As soon as it hits a hook such as:

    !epthook nt!NtOpenFile pid 1A4 script {
            printf("%ws\n", dq(poi(r8 + 10) + 0x8));
    }
    

    I get a blue screen of the Windows 10 client ...

    Anybody experiences with Fusion ... should that work?

    bug 
    opened by Myonium 7
  • Address might be valid but not present in the ram

    Address might be valid but not present in the ram

    I am currently trying to debug something and am trying to set a breakpoint on a function. But I get this error: "err, edit memory request has invalid address based on current process layout, the address might be valid but not present in the ram." When I try to set an epthook on the same function, i get an invalid address error.

    May I know what are the possible problems that may cause this error?

    opened by begnoob123 2
  • HyperDbg hang

    HyperDbg hang

    Hi, I have been trying out the examples provided in the HyperDbg documentation. But when i was doing the example on the !epthook, HyprDbg on my debugger machine seems to hang and becomes unresponsive. My target machine also remains in 'break' mode.

    Steps to reproduce the behavior:

    1. Follow the instructions to attach to a remote machine in HyperDbg Documentation. https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/debug
    2. Follow the example on the !epthook example. https://docs.hyperdbg.org/commands/extension-commands/epthook
    3. At the step where they set the epthook on the nt!NtOpenFile. HyperDbg hangs. HyperDbg_hang

    I am using a VMware VM to debug another VMware VM. Both VMs' OS is win10 21h2, intel i7-9700.

    opened by begnoob123 5
  • Parser bug for left/right shift

    Parser bug for left/right shift

    Here's a bug report I received from one of the HyperDbg users on Twitter.

    I found a bug in the expression parser for left/right shift.

    Here's example output from HyperDbg: 1: kHyperDbg> print (0xaa) aa // correct 1: kHyperDbg> print (0xaa << 8) aa00 // correct 1: kHyperDbg> print (0xaa << 16) 2a800000 // incorrect 1: kHyperDbg> print (0xaa0000 >> 16) 2 // incorrect

    I am expecting that (0xaa << 16) should return "aa0000", but not in the case. Similarly, expression (0xaa0000 >> 16) where it should return "aa" but HyperDbg returns incorrect result here.

    Evaluating similar expression in Python shows correct value:

    hex(0xaa) '0xaa' hex(0xaa << 8) '0xaa00' hex(0xaa << 16) '0xaa0000' hex(0xaa0000 >> 16) '0xaa'

    From my checking in the src code, left/right shift are handled by ScriptEngineExecute (switch FUNC_ASL and FUNC_ASR), but I couldn't figure out what's wrong (the code looks just fine).

    bug 
    opened by SinaKarvandi 0
  • Feature Request: Support Instruction Tracking

    Feature Request: Support Instruction Tracking

    Is your feature request related to a problem? Please describe. na

    Describe the solution you'd like I want to keep track of all executed instructions within a process,

    Describe alternatives you've considered Like ultimap function of cheatengine

    Additional context image

    feature enhancement 
    opened by inaryart 6
  • crash on .debug close (freeing buffer)

    crash on .debug close (freeing buffer)

    This is a bug I received by email.

    Sometimes when I use .debug close, it makes the guest BSOD, I generate a kernel crash dump and it seems that there is problem with the HV Pool Manager: In the file hprdbghv\code\memory\PoolManager.c in the PoolManagerUninitialize function the following call to ExFreePoolWithTag crashed because the buffer was already freed (double free) m

    // Free the allocated buffer (if not already changed)
    if (!PoolTable->AlreadyFreed)
    {
      ExFreePoolWithTag(PoolTable->Address, POOLTAG);
    }
    

    I didn't have time to figure out where the buffer was previously freed but I can try to take time to figure it out if it can help.

    bug 
    opened by SinaKarvandi 0
  • Setting !epthook on addresses on the same page

    Setting !epthook on addresses on the same page

    This is a bug I received by email.

    In the HyperDbg documentation, you say that we can use !epthook on two or more addresses on the same page. If I use !epthook on both nt!NtFsControlFile and nt!NtTerminateProcess, it makes the VM guest freeze. Both functions addresses are on the same page :

    0: kHyperDbg> !pte nt!NtTerminateProcess
    VA 7ffee30cd2e0
    PML4E (PXE) at ffffd3e9f4fa77f8 contains 0a0000016960f867
    PDPT (PPE) at ffffd3e9f4efffd8 contains 0a000001b6412867
    PDE at ffffd3e9dfffb8c0 contains 0a000001b8913867
    PTE at ffffd3bfff718668 contains 060000020115e025
    
    0: kHyperDbg> !pte nt!NtFsControlFile
    VA 7ffee30cd480
    PML4E (PXE) at ffffd3e9f4fa77f8 contains 0a0000016960f867
    PDPT (PPE) at ffffd3e9f4efffd8 contains 0a000001b6412867
    PDE at ffffd3e9dfffb8c0 contains 0a000001b8913867
    PTE at ffffd3bfff718668 contains 060000020115e02
    

    I don't have that issue when I use !epthook on addresses that don't belong to the same page.

    bug 
    opened by SinaKarvandi 0
Releases(v0.1.0)
  • v0.1.0(May 31, 2022)

    HyperDbg v0.1 is released!

    If you’re enjoying HyperDbg, don’t forget to give a star 🌟 on GitHub!

    Please visit Build & Install to configure the environment for running HyperDbg. Check out the Quick Start and Frequently Asked Questions (FAQs) to learn more. You can use the examples of using the debugger and the script engine to get started with HyperDbg.

    New Fearues

    • Advanced Hypervisor-based Kernel Mode Debugger [link][link][<a href="https://docs.hyperdbg.org/getting-started/attach-to-hyperdbg/local-debugging" target="_blank">link</a>]
    • Classic EPT Hook (Hidden Breakpoint) [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/hooking-any-function" target="_blank">link</a>]
    • Inline EPT Hook (Inline Hook) [link][<a href="https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook2" target="_blank">link</a>]
    • Monitor Memory For R/W (Emulating Hardware Debug Registers Without Limitation) [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/monitoring-accesses-to-structures" target="_blank">link</a>]
    • SYSCALL Hook (Disable EFER & Handle #UD) [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/intercepting-all-syscalls" target="_blank">link</a>]
    • SYSRET Hook (Disable EFER & Handle #UD) [link][<a href="https://docs.hyperdbg.org/design/features/vmm-module/design-of-syscall-and-sysret" target="_blank">link</a>]
    • CPUID Hook & Monitor [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions" target="_blank">link</a>]
    • RDMSR Hook & Monitor [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior" target="_blank">link</a>]
    • WRMSR Hook & Monitor [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior" target="_blank">link</a>]
    • RDTSC/RDTSCP Hook & Monitor [link]
    • RDPMC Hook & Monitor [link]
    • VMCALL Hook & Monitor [link]
    • Debug Registers Hook & Monitor [link]
    • I/O Port (In Instruction) Hook & Monitor [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions" target="_blank">link</a>]
    • I/O Port (Out Instruction) Hook & Monitor [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/triggering-special-instructions" target="_blank">link</a>]
    • MMIO Monitor [link]
    • Exception (IDT < 32) Monitor [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior" target="_blank">link</a>]
    • External-Interrupt (IDT > 32) Monitor [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/events/identifying-system-behavior" target="_blank">link</a>]
    • Running Automated Scripts [link]
    • Transparent-mode (Anti-debugging and Anti-hypervisor Resistance) [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/misc/defeating-anti-debug-and-anti-hypervisor-methods" target="_blank">link</a>]
    • Running Custom Assembly In Both VMX-root, VMX non-root (Kernel & User) [link]
    • Checking For Custom Conditions [link][<a href="https://docs.hyperdbg.org/design/debugger-internals/conditions" target="_blank">link</a>]
    • Process-specific & Thread-specific Debugging [link][link][<a href="https://docs.hyperdbg.org/using-hyperdbg/user-mode-debugging/examples/basics/switching-to-a-specific-process-or-thread" target="_blank">link</a>]
    • VMX-root Compatible Message Tracing [link]
    • Powerful Kernel Side Scripting Engine [link][<a href="https://docs.hyperdbg.org/design/script-engine" target="_blank">link</a>]
    • Support To Symbols (Parsing PDB Files) [link][<a href="https://docs.hyperdbg.org/commands/meta-commands/.sym" target="_blank">link</a>]
    • Event Forwarding (#DFIR) [link][<a href="https://docs.hyperdbg.org/commands/debugging-commands/output" target="_blank">link</a>]
    • Transparent Breakpoint Handler [link][<a href="https://docs.hyperdbg.org/using-hyperdbg/kernel-mode-debugging/examples/basics/setting-breakpoints-and-stepping-instructions" target="_blank">link</a>]
    • Various Custom Scripts [link]

    Note: community contributions are always welcomed and appreciated. If you plan to contribute a new feature, it's best to discuss it first. Bug fixes, tests, and documentation improvements are greatly appreciated.

    Source code(tar.gz)
    Source code(zip)
    hyperdbg-v0.1.0.zip(10.06 MB)
  • v0.1.0-beta(Dec 18, 2021)

    HyperDbg is not yet released but it is now available for testing! Please test it and provide us with your valuable feedback and possible bugs.

    Please follow the instructions here to start using HyperDbg.

    Full Changelog: https://github.com/HyperDbg/HyperDbg/commits/v0.1.0-beta

    Source code(tar.gz)
    Source code(zip)
Owner
HyperDbg
I'm a Schrödinger's cat working as a Windows kernel-mode debugger which is called HyperDbg with a focus on using modern hardware technologies.
HyperDbg
Hypervisor based anti anti debug plugin for x64dbg

HyperHide Table of Contents Description Compilation Support Usage Information Examples Features 1. Process Environment Block (PEB) 2. Heap Flags 3. Pr

Air 677 Jan 8, 2023
Palanteer is a set of high performance visual profiler, debugger, tests enabler for C++ and Python

Palanteer is a set of lean and efficient tools to improve the general software quality, for C++ and Python programs.

Damien Feneyrou 1.9k Dec 29, 2022
Templight 2.0 - Template Instantiation Profiler and Debugger

Templight is a Clang-based tool to profile the time and memory consumption of template instantiations and to perform interactive debugging sessions to gain introspection into the template instantiation process.

Sven Mikael Persson 611 Dec 30, 2022
With xshellex you can paste any kind of c-shellcode strings in x64dbg, ollydbg & immunity debugger

With xshellex you can paste any kind of c-shellcode strings in x64dbg, ollydbg & immunity debugger. Also you can convert the "binary-copied-clipboard" to c-shellcode string.

David Reguera Garcia aka Dreg 30 Oct 7, 2022
A Garry's Mod module that creates a Remote DeBugger server

gm_rdb A Garry's Mod module that creates a Remote DeBugger server. Provides Lua debugging (using LRDB) and access to the Source engine console. Compil

Daniel 14 Jul 7, 2022
heaptrace is a ptrace-based debugger for tracking glibc heap operations in ELF64 (x86_64) binaries

heaptrace is a ptrace-based debugger for tracking glibc heap operations in ELF64 (x86_64) binaries. Its purpose is to help visualize heap operations when debugging binaries or doing heap pwn.

Aaron Esau 252 Dec 21, 2022
A small, educational debugger with no dependencies

smldbg A small, educational debugger with no dependencies. Prerequisites To build the project and run the tests, the following are required: A C++20 c

null 3 Jun 16, 2022
Windows-only Remote Access Tool (RAT) with anti-debugging and anti-sandbox checks

RATwurst Windows-only Remote Access Tool (RAT) with anti-debugging and anti-sandbox checks. For educational purposes only. The reason behind this proj

AccidentalRebel 35 Dec 5, 2022
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Catch Org 16k Jan 8, 2023
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Catch Org 16k Jan 8, 2023
DotX64Dbg aims to provide a seamless way to write and test plugins for X64Dbg using .Net 5.0 and C#.

DotX64Dbg (EARLY ALPHA) Plugins and Scripting with C# for x64Dbg. Create Plugins for X64Dbg with ease DotX64Dbg aims to provide a seamless way to writ

ζeh Matt 7 Oct 16, 2022
CppUTest unit testing and mocking framework for C/C++

CppUTest CppUTest unit testing and mocking framework for C/C++ More information on the project page Slack channel: Join if link not expired Getting St

CppUTest 1.1k Dec 26, 2022
Googletest - Google Testing and Mocking Framework

GoogleTest OSS Builds Status Announcements Release 1.10.x Release 1.10.x is now available. Coming Soon Post 1.10.x googletest will follow Abseil Live

Google 28.7k Jan 7, 2023
A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and as simple as possible to create the lowest amount of overhead.

plf_nanotimer A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking. The implementation is as limited and simple a

Matt Bentley 102 Dec 4, 2022
🧪 single header unit testing framework for C and C++

?? utest.h A simple one header solution to unit testing for C/C++. Usage Just #include "utest.h" in your code! The current supported platforms are Lin

Neil Henning 560 Jan 1, 2023
Anti-Debug and Anti-Memory Dump for Android

AntiDebugandMemoryDump Anti-Debug and Anti-Memory Dump for Android Some known techniques for anti-debug and anti-memory dump have been used in this pr

Darvin 184 Dec 25, 2022
An efficient OpenFST-based tool for calculating WER and aligning two transcript sequences.

fstalign Overview Installation Dependencies Build Docker Quickstart WER Subcommand Align Subcommand Inputs Outputs Overview fstalign is a tool for cre

Rev 108 Dec 12, 2022
🍦IceCream-Cpp is a little (single header) library to help with the print debugging on C++11 and forward.

??IceCream-Cpp is a little (single header) library to help with the print debugging on C++11 and forward.

Renato Garcia 422 Dec 28, 2022
Watch for file changes and auto restart an application using fork checkpoints to continue the process (for quick live development)

Forkmon Watch for file changes and auto restart an application using fork checkpoints to continue. Intended for quick live development. This works onl

Eduardo Bart 12 Aug 27, 2022