mirror of
https://github.com/youssefnoob003/SindriKit
synced 2026-07-07 21:57:09 +00:00
aea2eb6cfb
- 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
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)
|