Skip to content

iamhatling/emudbg

 
 

Repository files navigation

EmuDbg

EmuDbg is a lightweight, high-speed Emulator + Debugger designed for reverse engineering Windows executables.


✨ How It Works

Splash

  • Run any .exe in debug mode
  • Disassemble instructions using Zydis
  • Directly emulate assembly instructions
  • Skip Windows API calls via debugger stepping without emulating syscalls
  • Much faster than traditional emulators that simulate the entire OS environment
  • Ideal for reverse engineering, malware analysis, and low-level research

⚡ Why EmuDbg?

Unlike heavy full-system emulators, EmuDbg focuses on fast instruction emulation.
Windows API functions are skipped through debugger stepping, allowing seamless execution flow without the need for syscall emulation or complex kernel hooks.


🚀 Getting Started

  1. Clone the repository

    git clone https://github.com/yourusername/EmuDbg.git
    cd EmuDbg
    cmake .
  2. Or download the latest prebuilt EmuDbg.exe from the Releases page

  3. Configure runtime modes (optional):

    You can customize EmuDbg’s behavior by editing the cpu.hpp file.
    There are three main flags controlling logging and CPU mode:

    //------------------------------------------
    // LOG analyze 
    #define analyze_ENABLED 1
    
    // LOG everything
    #define LOG_ENABLED 0
    
    // Test with real CPU
    #define DB_ENABLED 0
    //------------------------------------------

    Setting all flags to 0 will run the emulator in pure emulation mode without extra logging or real CPU testing.


🛠 Usage

EmuDbg.exe <exe_path> [-m target.dll] [-b software|hardware]

📌 Arguments

Argument Required Description
<exe_path> Path to the target executable you want to debug
-m <target.dll> Wait for a specific DLL to load before setting breakpoints
-b <type> Breakpoint type: software (default) or hardware

💡 Examples

🔸 Run with software breakpoints on process entry point and TLS callbacks

EmuDbg.exe C:\Samples\MyApp.exe -b software

🔸 Wait for a specific DLL to load, then inject hardware breakpoints

EmuDbg.exe C:\Samples\MyApp.exe -m target.dll -b hardware

🔸 Default usage with no flags (uses software breakpoints)

EmuDbg.exe C:\Malware\packed.exe

About

A fast Windows emulator + debugger for reverse engineering. Runs any executable in debug mode, disassembles with Zydis, emulates instructions, and skips Windows API calls via debugger for maximum speed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 99.6%
  • Other 0.4%