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
38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
#ifndef SND_INJECTION_CLASSIC_CHAIN_H
|
|
#define SND_INJECTION_CLASSIC_CHAIN_H
|
|
|
|
#include <sindri/common/macros.h>
|
|
#include <sindri/injection/classic/engine.h>
|
|
#include <sindri/injection/context.h>
|
|
|
|
SND_BEGIN_EXTERN_C
|
|
|
|
// Forward declare the loader context so we don't have to include the loader module
|
|
typedef struct _snd_ldr_pe_ctx snd_ldr_pe_ctx_t;
|
|
|
|
/**
|
|
* @brief Executes the full classic injection pipeline.
|
|
*
|
|
* Runs: open_target -> alloc_remote -> write_payload -> set_protections -> execute.
|
|
*
|
|
* @param ctx Initialized injection context with target_pid, payload, and proc_api set.
|
|
* @return SND_OK on success, otherwise the failing stage status.
|
|
*/
|
|
snd_status_t snd_inj_classic_shell(snd_inj_ctx_t *ctx);
|
|
|
|
/**
|
|
* @brief High-level orchestrator that links a loader context and an injection context.
|
|
*
|
|
* The user initializes both contexts with their desired API backends, and this
|
|
* chain handles the inter-context data marshaling and execution flow.
|
|
*
|
|
* @param ldr_ctx Initialized PE loader context with raw_source, mem_api, and mod_api set.
|
|
* @param inj_ctx Initialized injection context with target_pid, and proc_api set.
|
|
* @return SND_OK on success, otherwise the failing stage status.
|
|
*/
|
|
snd_status_t snd_inj_classic_pe(snd_ldr_pe_ctx_t *ldr_ctx, snd_inj_ctx_t *inj_ctx);
|
|
|
|
SND_END_EXTERN_C
|
|
|
|
#endif // SND_INJECTION_CLASSIC_CHAIN_H
|