Files
youssefnoob003-SindriKit/docs/domains/primitives/execution
sibouzitoun aea2eb6cfb Release v1.1.0: Process Injection & Architecture Hardening
- Implement complete cross-process injection engine via snd_inj_ctx_t
- Track explicit remote_entry_point for safe thread hijacking and PE execution
- Refactor standalone syscall resolvers into a unified pipeline (scan/sort)
- Perfect status code system by purging generic fallbacks in favor of highly-specific, domain-aware error codes
- Fix minor pointer validation and parsing bugs in the reflective loader
2026-06-28 14:14:54 +01:00
..

Execution Primitives

Low-level mechanisms for calling unknown function signatures, crossing WoW64 bitness boundaries, and (in source layout) hosting the syscall invoker. These sit below memory, module, and process backends — loaders and injection chains consume them indirectly.

Header map

Header Role
sindri/primitives/ffi.h snd_ffi_execute — dynamic call bridge for resolved exports
sindri/primitives/heavens_gate.h snd_is_wow64, snd_hg_execute_64 — WoW64 → native x64
sindri/primitives/syscalls.h SSN resolution pipeline + snd_syscall_invoke_asm (documented under syscalls/)

All three are pulled in by include/sindri/primitives.h and include/sindri.h.

Source layout

Implementation lives under src/primitives/execution/:

src/primitives/execution/
├── ffi/
│   ├── ffi_invoke.c          ← snd_ffi_execute validation + dispatch
│   └── asm/
│       ├── ffi_x64.asm       ← snd_ffi_bridge_x64
│       └── ffi_x86.asm       ← snd_ffi_bridge_x86
├── heavens_gate/
│   ├── heavens_gate.c        ← WoW64 detection + argument padding
│   └── asm/
│       └── heavens_gate_x86.asm  ← snd_hg_invoke_x86 (CS 0x33 transition)
└── syscalls/
    ├── syscalls.c            ← strategy chain, snd_syscall_resolve
    ├── syscalls_scan.c       ← snd_syscall_resolve_ssn_scan
    ├── syscalls_sort.c       ← snd_syscall_resolve_ssn_sort
    └── asm/
        ├── invoke_x64.asm    ← snd_syscall_invoke_asm (x64)
        └── invoke_x86.asm    ← snd_syscall_invoke_asm (x86)

Syscall resolution and invocation are documented in the dedicated syscalls subtree; this directory focuses on FFI and Heaven's Gate.

When to use which primitive

Need API Typical consumer
Call a named export with unknown arity (-e/-a) snd_ffi_execute loader_winapi, loader_nowinapi PoCs
Invoke 64-bit code from a 32-bit WoW64 process snd_hg_execute_64 pocs/heavens_gate
Bypass hooked ntdll stubs for memory/process ops snd_syscall_resolve + _sys backends inject_pe, snd_mem_sys, snd_proc_sys

DllMain, TLS, and EXE entry use typed direct calls inside snd_ldr_pe_execute_image — not FFI. See ffi.md.

Table of Contents

  • ffi.md — MASM bridges, calling conventions, C4152-safe type punning
  • heavens_gate.md — segment selector 0x33, WoW64 TEB probe
  • api_reference.md — public FFI and Heaven's Gate signatures