PEB walking, export parsing, Tartarus Gate syscalls, and nt_* wrappers.
This is the default dyncvoke backend (feature = "syscall"). The usual
entry points are [syscall!], [do_syscall!], [resolve_syscall],
[get_module_base_address], and [get_function_address].
Indirect syscalls:
- [
resolve_syscall] finds the ntdll stub, extracts the SSN (Hell's / Halo's / Tartarus Gate), and locates asyscall; retgadget. - [
syscall!] does that and dispatches in one step. - [
do_syscall!] dispatches a cached(ssn, addr)pair with no extra resolution.
use dyncvoke_core::syscall;
let status = syscall!("NtClose", handle).unwrap() as i32;
Module lookup walks PEB->Ldr->InLoadOrderModuleList. It does not call
EnumProcessModules or GetModuleHandle.