mirror of
https://github.com/youssefnoob003/SindriKit
synced 2026-07-07 21:57:09 +00:00
b7d3cf717c
- Implemented fully decoupled direct and indirect syscall invocation - Added dynamic PEB-based gadget scanning (syscall; ret / sysenter) - Added x86 & x64 inline MASM stubs with proper stack frame alignment - Introduced SND_USE_DEFAULTS compile-time OpSec macro for lean payload compilation - Extensive documentation across all primitives and examples
55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
# Injection Domain
|
|
|
|
Remote process injection: open target, allocate remote memory, write payload, set protections, create a remote thread. Cross-process operations route through an injected `snd_process_api_t` table.
|
|
|
|
## Shared context vs loader contexts
|
|
|
|
Unlike loaders, **all injection techniques share** `snd_inj_ctx_t` (`sindri/injection/context.h`). Stage machine, handles, remote fields, and `proc_api` are identical across classic and future techniques.
|
|
|
|
Each technique adds engine functions and chains under a subdirectory but mutates the same context:
|
|
|
|
```
|
|
include/sindri/injection/
|
|
├── context.h <- shared across ALL techniques
|
|
└── classic/
|
|
├── engine.h <- per-stage classic engine
|
|
└── chain.h <- snd_inj_classic_shell, snd_inj_classic_pe
|
|
```
|
|
|
|
Loader contexts are **per-technique** (`snd_ldr_pe_ctx_t` today).
|
|
|
|
## Header map
|
|
|
|
| Header | Role |
|
|
|---|---|
|
|
| `sindri/injection.h` | Umbrella include |
|
|
| `sindri/injection/context.h` | `snd_inj_ctx_t`, stages, `snd_inj_cleanup` |
|
|
| `sindri/injection/classic.h` | Classic technique umbrella |
|
|
| `sindri/injection/classic/engine.h` | Per-stage engine functions |
|
|
| `sindri/injection/classic/chain.h` | `snd_inj_classic_shell`, `snd_inj_classic_pe` |
|
|
|
|
## Implemented techniques
|
|
|
|
| Technique | Chain | Payload |
|
|
|---|---|---|
|
|
| Classic shellcode | `snd_inj_classic_shell` | Raw buffer in `inj_ctx.payload` |
|
|
| Classic PE | `snd_inj_classic_pe` | Local bake + remote execute (requires `snd_ldr_pe_ctx_t`) |
|
|
|
|
## PoCs
|
|
|
|
| PoC | Chain | Profile |
|
|
|---|---|---|
|
|
| `pocs/inject_shell/main.c` | `snd_inj_classic_shell` | KnownDlls bootstrap + `snd_proc_win` |
|
|
| `pocs/inject_pe/main.c` | `snd_inj_classic_pe` | `snd_mem_sys`, `snd_mod_nt`, `snd_proc_sys` |
|
|
|
|
## Table of Contents
|
|
|
|
- [techniques.md](techniques.md) — classic pipelines, stage machine, loader interop
|
|
- [api_reference.md](api_reference.md) — context, engine, and chain API
|
|
|
|
## Related documentation
|
|
|
|
- [Loaders domain](../loaders/README.md) — local PE bake for classic PE path
|
|
- [Process primitives](../primitives/process/README.md)
|
|
- [Examples](../../examples/README.md)
|