Protected Dual Syscall Execution Framework
ActiveBreach-Engine (ABE) is a Windows execution capability platform designed to execute secured & direct system calls in heavily instrumented environments, protecting your process from external attackers and process hooking.
ABE provides a controlled, fully dynamic framework for executing system calls without reliance on user-mode API invocation or resident ntdll.dll code paths, while also protecting said syscall stubs from hijacking or modification by an external attacker.
This project was put together as a successor-class capability to historical syscall research tooling (e.g., SysWhispers and Hell’s Gate), addressing the limitations, static assumptions, and detectability issues inherent in earlier designs.
Modern debugging & instrumentation tools rely on API hooking and breakpoints, possibly the easiest way to observe a processes behaviour is by simply setting breakpoints on codepaths you're interested in. There's an endless cat and mouse chase between anti-debug, control-flow obfuscation, indirection, lifting etc... Activebreach is focused on preventing the hook itself from exposing your progrma.
The most common API hooks are on ntdll.dll, which is the system call boundary in userland which every system-call requiring API (eg; OpenProcess) eventually hits. This is of course the perfect place for a hook, luckily these ntdll.dll stubs are also extremely generic and easily copyable.
ABE builds upon this, building its own protected, encrypted & optimized stub rings that it uses to execute secured system calls, without any sort of reliance on ntdll.dll or other DLL's, ABE operates assuming everything in the environment is hostile, using its own dedicated dispatcher thread, and multiple anti-debug & protection mechanisms to prevent your system calls.
For ease of integration, ABE is provided in three trims: C, C++, and Rust. Rust is the most technically advanced implementation, while C++ offers an integrated debugger.
Primarily due to integration complexity. Linking cryptographic libraries and using Windows internal structures in C++ introduces development friction and unnecessary complexity. The goal of ABE is ease of integration, which means no external dependencies. As a result, the C and C++ versions are provided as single-include header files (.h).
The Rust version includes exclusive features such as build-time encrypted stub templates, a custom stub ring allocator, and TLS callbacks.
The Rust SDK is modular and portable:
- Native Rust integration (path dependency or crate dependency)
- C ABI integration via
activebreach.dll(runtime loading or import-lib linking) - Static linking via
activebreach.lib
This C ABI surface is intentionally language-agnostic and can be consumed from C/C++, C#, Zig, Nim, Odin, D, Python (ctypes/cffi), and similar FFI-capable runtimes.
Build outputs from SDK/Rust/target/{debug,release} include:
libactivebreach.rlib(Rust-to-Rust)activebreach.dll(shared library, C ABI)activebreach.dll.lib(MSVC import library for the DLL)activebreach.lib(static library)
C ABI header:
SDK/Rust/include/activebreach.h
Exported symbols:
activebreach_launchab_callab_violation_countab_set_violation_handlerab_clear_violation_handler
Integration models on Windows:
- DLL only (runtime dynamic loading with
LoadLibrary/GetProcAddress) - DLL + import LIB (implicit link with
activebreach.dll.lib) - Static LIB (
activebreach.lib, no runtime DLL dependency for this library)
See Usage Overview
The Rust SDK ships with the following feature flags:
secure(default): Stub pages are protected at rest withPAGE_NOACCESSand protections are flipped during acquire/patch/execute/release. This reduces cleartext stub exposure in memory at the cost of moreVirtualProtecttransitions. This is intended for operators who want to maximize in-process security and want absolute certainty that their syscalls will not be tampered with.stealth: Marker feature for "nosecure". To actually run without protection flips, build with--no-default-features(and optionally add--features stealthto make the intent explicit). In this mode stub pages remain writable/executable, reducing flip noise but leaving stubs more exposed in memory. This is intended for operators who want to minimize page-flipping visibilitylong_sleep: Enables an idle teardown path in the dispatcher. After a configurable idle interval (default 30_000ms), the dispatcher drops the stub pool and syscall table, then blocks until new work arrives. The public APIab_set_long_sleep_idle_ms(ms)is only available with this feature. This is intended for operators developing long-living or LOTL processes who want to avoid memory-scanners.ntdll_backend: Prefer jumping into an intact loaded-ntdll.dllsyscall prologue (insidentdll.text) instead of issuingsyscallfrom the ActiveBreach stub. If the loaded export stub/prologue is detected as hooked or invalid, the dispatcher falls back to the direct-syscall stub. Stack spoofing is disabled in this backend (no synthetic return chain is constructed). This is intended for operators who want minimal EDR foresnsics and are operating in a heavily instrumented environment.
Example builds:
- Default (recommended baseline):
cargo build
- Stealth-ish (no
secureprotection flips):cargo build --no-default-features --features stealth
- Long-idle friendly:
cargo build --features long_sleep
- Prefer loaded-NTDLL prologues when intact:
cargo build --features ntdll_backend
Copyright © 2026 TITAN Softwork Solutions
Licensed under the Apache License, Version 2.0 (the "License") with the Commons Clause License Condition v1.0.
- You may not use this software for commercial purposes ("Sell the Software" as defined in the Commons Clause).
- Full text is provided in
LICENSE.
Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
Commons Clause details: https://commonsclause.com/
