1.7 KiB
HyperDbg for Linux
Status
⚠️ HyperDbg for Linux is not yet ready.
Linux is currently not supported.
We are in the process of porting HyperDbg to Linux. This effort is ongoing and may take some time to complete.
Contributing to the Linux Port
HyperDbg is being ported from Windows to Linux. The work is incremental: most of the codebase compiles file-by-file as the Win32-specific calls get replaced with a platform-independent interface.
Building
cmake . # generate the Makefiles
make # build
Run these from the repo root (or the relevant subdirectory). cmake . only
needs to be re-run when the CMake files change; otherwise make is enough.
How to contribute
The port progresses one source file at a time. To pick up work:
- Build and find the next file that fails to compile.
- Go through it and make it Linux-compatible.
- Where the code calls Windows-only APIs (serial, registry, signals,
threads, etc.), don't
#ifdefinline — route the call through the platform-independent interface so both Windows and Linux share the same call site with separate backing implementations. - Rebuild until the file is clean, then move to the next one.
The platform interface
User-mode abstractions live in include/platform/user/ (header/ for the
interface, code/ for the implementations). See existing examples such as
platform-serial, platform-signal, and platform-ioctl for the pattern to
follow. Kernel-mode equivalents are under include/platform/kernel/.
Guidelines
- Keep platform-specific code behind the platform abstraction, not scattered through the logic.
- Match the surrounding code's style and conventions.
- Build before submitting — every changed file should compile.