Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SindriKit — Eine grundlegende C-Bibliothek zur Erstellung operativ glaubwürdiger offensiver Fähigkeiten | Kitploit
Tools/GitHubGitHub/youssefnoob003/sindrikit
Penetrationstest-FrameworksExploit-FrameworksCode-AnalyseReverse EngineeringShellcodeLernen & BildungRed TeamingPayload-EntwicklungBinary-Exploitation
GitHubyoussefnoob003/sindrikit

SindriKit

Eine grundlegende C-Bibliothek zur Erstellung operativ glaubwürdiger offensiver Fähigkeiten

71550vor 16 TagenVon Kitploit geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/735/ac7a3259ddf602d9e7d0c2f683f22497afec347da32bb930d5369acf66ae34f5.png" width="100%">
</p>

<h1 align="center">SindriKit</h1>

<p align="center">
  <strong>Offensive Development verdient eine bessere Architektur.</strong><br>
  <em>Eine C-Bibliothek zum Aufbau offensiver Fähigkeiten.</em>
</p>

---

## Kernkonzept

Die meisten offensiven Utilities hardcodieren ihre Ausführungsmechaniken innerhalb der Logik der Technik. Ein reflektiver Loader mappt nicht einfach ein Image; er mappt es unter Verwendung einer bestimmten, hardcodierten Kette von `VirtualAlloc`- oder nativen NTAPI-Aufrufen. Wenn eine EDR beginnt, diese spezifische Kette zu überwachen, sind Sie gezwungen, das gesamte Tool neu zu schreiben.

SindriKit löst dies, indem es eine Trennung der Belange durch Interface-Abstraktionstabellen erzwingt:

1. **Die Technik-Logik:** (z. B. Loader, Injections, Patcher) befasst sich mit Zustandsverfolgung und Datenorchestrierung. Sie hat keine Kenntnis davon, wie Speicher allokiert oder wie Threads erstellt werden.
2. **Die Ausführungsmechaniken:** (z. B. Win32 API, Native NTAPI, Direct Syscalls) befinden sich in unabhängigen API-Tabellen und werden zur Laufzeit in die Technik injiziert.

Indem Ausführungsmechaniken auf Laufzeit-Funktionszeiger verlagert werden, können Sie Ihre gesamte Strategie von Win32-Aufrufen auf rohe Direct Syscalls mit einer einzigen Codezeile umstellen – ohne Ihre Payload-Ausführungslogik zu ändern.

---

## Design-Architektur

* **Entkoppelte Ausführungsprofile:** Tauschen Sie Speicher-, Modul-, Mapping-, Prozess-, Thread- und Dateimechaniken über unabhängige Funktionszeiger-Tabellen (`snd_memory_api_t`, `snd_module_api_t`, `snd_process_api_t`, `snd_thread_api_t`, `snd_mapping_api_t`, `snd_file_api_t`) aus, ohne die Technik-Logik zu berühren.
* **Technik-Abdeckung:** Reflektives **PE**- (EXE/DLL) und **COFF/BOF**-Laden, **klassische** und **Early-Bird-APC**-Injection über Shellcode/PE/COFF, plus architekturbewusste FFI und Heaven's Gate – alles über dieselben komponierbaren Profile.
* **Kaskadierende Syscall-Pipeline:** Austauschbare SSN-Resolver (`snd_syscall_resolve_ssn_scan`, `snd_syscall_resolve_ssn_sort`) mit einer Prioritätskette, entkoppelt von Invokern: **direct**, **indirect** (NTDLL-Gadget) oder **spoofed** (dynamisches Fat-Frame-Call-Stack-Spoofing).
* **Facility-kodierter Status:** Jeder fehleranfällige Aufruf gibt `snd_status_t` zurück – ein gepackter Facility/Local-Code plus der erfasste OS-Fehler, mit Kontextstrings, die in der Silent-Tier herauskompilieren.
* **Compile-Time-Obfuskation:** String- und API-Hashing-Algorithmen (DJB2, FNV1A) können global über CMake ausgetauscht werden. Das Kompilieren randomisiert automatisch den globalen Seed, um statische Signaturen zu verändern.
* **Mutations-Engine:** Ermöglicht tiefe Polymorphie über `SND_MORPH`. Generiert bei jedem Build einzigartige binäre Signaturen, indem volatile opake Prädikate in C-Code, funktional äquivalente Math/NOPs in Assembly-Stubs injiziert und das Speicherlayout der Kernstrukturen verwürfelt wird.
* **Release-Builds:** Eine Silent-Tier entfernt alle diagnostischen Strings, Dateideskriptoren und Tracking-Frames; `SND_CRTLESS`-Builds gehen weiter mit `/NODEFAULTLIB`, keinem SDK-Header, einem PEB-Frontend und ausschließlich nativen Backends.

---

## Schnellstart

Das Repository liefert eine einzige `unified`-CLI, die jedes Profil ausübt:

```sh
build.bat pocs
build64\pocs\Release\unified.exe load pe -f payload.dll -e Run --sys
```

`unified` unterstützt `load pe|coff`, `inject classic|apc|hijack` (shell, PE, COFF) und `hg`, jeweils über `--win`/`--nt`/`--sys`. Siehe [Examples & PoCs](https://github.com/youssefnoob003/sindrikit/blob/main/docs/examples/README.md) und [Getting Started](https://github.com/youssefnoob003/sindrikit/blob/main/docs/getting_started/README.md).

---

## SindriKit integrieren

```cmake
cmake_minimum_required(VERSION 3.16)
project(MyTool C ASM_MASM)

set(SND_BUILD_PAYLOADS  OFF    CACHE BOOL   "")
set(SND_ENABLE_DEBUG    OFF    CACHE BOOL   "")
set(SND_HASH_ALGO      "DJB2"  CACHE STRING "")
set(SND_RANDOMIZE_SEED  ON     CACHE BOOL   "")
set(SND_MORPH           ON     CACHE BOOL   "")

add_subdirectory(libs/SindriKit)

add_executable(my_tool src/main.c)
target_link_libraries(my_tool PRIVATE sindri::engine)
```

```sh
cmake -B build && cmake --build build --config Release
```

Nur zwei Zeilen, damit Ihr Tool alle Fähigkeiten von SindriKit erbt: PE- und COFF-Parsing, reflektives Laden, kaskadierende Syscalls und Injection-Profile.

---

## Die Engine

### API-Abstraktionsschicht

```
        ┌────────────────────────────────────────────────────────────────────────────┐
        │                          JEDE OFFENSIVE ABSICHT                            │
        │    Loader · Injector · Spoofer · Patcher · Bypasser · Harvester · ...      │
        ├────────────────────────────────────────────────────────────────────────────┤
        │                     SINDRIKIT API-ABSTRAKTIONSSCHICHT                       │
        │      snd_memory_api_t   ->  alloc · free · protect                         │
        │      snd_module_api_t   ->  load_library · get_proc_address · ...          │
        │      snd_process_api_t  ->  open · alloc_remote · write · protect · thread │
        │      snd_mapping_api_t  ->  open · view · close   (KnownDlls bootstrap)    │
        │      snd_thread_api_t   ->  queue_apc · resume · suspend                   │
        │      snd_file_api_t     ->  load                                           │
        ├──────────────────┬──────────────────────┬──────────────────────────────────┤
        │   Win32-Profil   │    Natives Profil    │    Bring Your Own Mechanic       │
        │  VirtualAlloc    │  NtAllocateVirtual   │  Driver · ROP · Exotic           │
        │  LoadLibraryA    │  PEB Walk + EAT      │  Operator-definierte Funktionen  │
        └──────────────────┴──────────────────────┴──────────────────────────────────┘
```

In der Praxis bedeutet dies, dass jede Domäne demselben Vertrag folgt:

```c
// Reflective loader
snd_ldr_pe_ctx_t ctx = {0};
ctx.raw_source = &payload;
ctx.mem_api    = &snd_mem_win;   // or snd_mem_nt / snd_mem_sys
ctx.mod_api    = &snd_mod_win;   // or snd_mod_nt
snd_ldr_pe_prepare_image(&ctx);
snd_ldr_pe_execute_image(&ctx);

// Classic injection
snd_inj_ctx_t inj = {0};
inj.target_pid = 1337;
inj.payload    = &shellcode;
inj.proc_api   = &snd_proc_sys;  // or snd_proc_win / snd_proc_nt
snd_inj_classic_shell(&inj);
snd_inj_cleanup(&inj);
```

### Kaskadierende Syscall-Pipeline

SindriKit behandelt Syscall-Auflösung als eine injizierbare Mechanik, die Strategien in Prioritätsreihenfolge stapelt. Die Engine fällt durch, bis eine erfolgreich ist:

```c
snd_ntdll_set_clean(clean_ntdll);
snd_syscall_set_resolver(snd_syscall_resolve_ssn_scan);
snd_syscall_add_resolver(snd_syscall_resolve_ssn_sort);
snd_syscall_set_invoker(snd_syscall_direct_invoke_asm);
// or for indirect syscalls:
// snd_syscall_set_invoker(snd_syscall_indirect_invoke_asm);
// snd_syscall_set_gadget_finder(snd_syscall_find_gadget_scan);
// or for spoofed syscalls:
// snd_syscall_set_invoker(snd_syscall_spoofed_invoke_asm);
// snd_syscall_set_spoof_finder(snd_syscall_find_spoof_scan);
```

Der Invoker ist von der SSN-Auflösung entkoppelt – wechseln Sie zwischen direkten, indirekten und gespooften Syscalls, ohne Domänencode zu ändern. Indirekte Invocation springt zu einem legitimen NTDLL-Gadget, sodass die Rückkehradresse innerhalb von `ntdll.dll` bleibt; gespoofte Invocation platziert zusätzlich eine echte Aufrufer-Rückkehradresse innerhalb eines dynamisch entdeckten "Fat Frame", sodass Call-Stack-Unwinds kohärent bleiben.

### Compile-Time-Algorithmus-Agilität

Jeder API-Name und Modulstring wird zur Kompilierzeit über eine einzige CMake-Variable aus der finalen Binärdatei entfernt:

```cmake
set(SND_HASH_ALGO "FNV1A")  # or DJB2 recomputes everything automatically
set(SND_RANDOMIZE_SEED ON)  # generates a fresh 32-bit seed on next configure
```

Jeder Hash wird mit einem zufällig generierten Seed berechnet (wenn `SND_RANDOMIZE_SEED=ON`). Der statische Footprint verschiebt sich vollständig zwischen Kompilierungen, ohne eine Zeile C zu berühren.

### Architekturbewusste dynamische FFI

Eine benutzerdefinierte MASM-Assembly-Brücke für beliebige Laufzeit-Funktionsaufrufe. x64-Builds folgen präzise der Microsoft-x64-Aufrufkonvention (Shadow Space, Register-Argumentplatzierung, Stack-Ausrichtung). x86-Builds pushen Argumente in umgekehrter Reihenfolge mit Unterstützung für sowohl `cdecl`- als auch `stdcall`-Ziele.

### Bounds-geprüfter PE-Parser

Ein vereinheitlichter PE32/PE32+-Parser mit einem `is_mapped`-Flag, das sowohl rohe On-Disk-Images als auch speichergemappte Views korrekt handhabt. Jeder Datenverzeichniszugriff wird gegen verfolgte Puffergrenzen validiert, bevor dereferenziert wird. Export-Auflösung unterstützt Forwarder-Ketten bis zu einer Tiefe von 4 mit hash-basiertem Lookup.

Getestet gegen:
- 40+ Kern-Testkombinationen, die auf Edge-Case-EXEs, DLLs, fehlerhafte Argumente, fehlende Exporte und TLS-Callbacks über x86 und x64 abzielen.
- 100+ dynamische PE-Mutationen, die vom `pe_mutator`-Modul generiert werden: genullte Section-Namen, Integer-Overflows, ungültige `e_lfanew`-Grenzen, verstümmelte Importe.
- Vollständiger Corkami-Korpus: lädt gültige Samples sauber, lehnt fehlerhafte sauber ab, ohne bei 99 % der Samples abzustürzen.

### COFF / BOF Loader

Eine zweite Loader-Technik handhabt ungelinkte COFF-Objektdateien (Beacon Object Files): begrenztes Parsing von Headern, Sections, Symbolen und Relocations; `MODULE$Function`-Externsymbol-Auflösung durch das injizierte `mod_api`; x64-`JMP [RIP+0]`-Trampoline für Out-of-Range-Aufrufe; und Ausführung eines benannten Einstiegspunkts (Standard `go`) – lokal oder in einen Remote-Prozess gemarshalt.

### Zustandsverfolgte Domänenkontexte

Jede offensive Operation wird über eine diskrete Kontextstruktur mit Stage-Enumeration verwaltet. Operationen können zwischen Stages für Sleep-Obfuskation oder gestaffeltes Deployment pausiert, sauber fortgesetzt und auf den exakten Fehlerpunkt bis hinunter zum Subsystem und Grund inspiziert werden.

---

## Die API-Design-Philosophie

Bootstrapen Sie die Syscall-Pipeline einmal (typisches Muster):

```c
PVOID clean_ntdll = NULL;
snd_om_knowndll_map(&snd_map_nt, L"ntdll.dll", &clean_ntdll);
snd_ntdll_set_clean(clean_ntdll);
snd_syscall_set_resolver(snd_syscall_resolve_ssn_scan);
snd_syscall_add_resolver(snd_syscall_resolve_ssn_sort);
snd_syscall_set_invoker(snd_syscall_direct_invoke_asm);
// or for indirect syscalls:
// snd_syscall_set_invoker(snd_syscall_indirect_invoke_asm);
// snd_syscall_set_gadget_finder(snd_syscall_find_gadget_scan);
// or for spoofed syscalls:
// snd_syscall_set_invoker(snd_syscall_spoofed_invoke_asm);
// snd_syscall_set_spoof_finder(snd_syscall_find_spoof_scan);
```

Der Invoker ist von der SSN-Auflösung entkoppelt – wechseln Sie zwischen direkten, indirekten und gespooften Syscalls, ohne Domänencode zu ändern. Indirekte Invocation springt zu einem legitimen NTDLL-Gadget, sodass die Rückkehradresse innerhalb von `ntdll.dll` bleibt; gespoofte Invocation platziert zusätzlich eine echte Aufrufer-Rückkehradresse innerhalb eines dynamisch entdeckten "Fat Frame", sodass Call-Stack-Unwinds kohärent bleiben.

Tauschen Sie das Ausführungsprofil mit einer Zuweisung aus:

```c
ctx.mem_api = &snd_mem_win;   // diagnostic
ctx.mem_api = &snd_mem_nt;    // NT stubs via PEB + EAT
ctx.mem_api = &snd_mem_sys;   // direct syscalls (pipeline required)
```

Modulauflösung folgt demselben Muster (`snd_mod_win` vs. `snd_mod_nt`). Es gibt kein syscall-gestütztes Modul-Backend – Importe verwenden PEB Walk + EAT selbst in vollständigen `_sys`-Profilen.

---

## Build-Tiers

### Debug-Tier — `SND_ENABLE_DEBUG=ON`

Für lokale Entwicklung. `snd_status_t` erweitert sich um `file`, `line` und einen 128-Byte-`context`-Stringpuffer. `SND_ERR_CTX` und `SND_DEBUG_PRINT` geben Zustandsmaschinenübergänge, geparste PE-Feldwerte und Syscall-Auflösungsergebnisse aus. Verwenden Sie `SND_USE_PRINTF=ON`, um die Ausgabe auf `stdout` statt auf die Debug-Konsole zu leiten.

### Silent-Tier — `SND_ENABLE_DEBUG=OFF`

Die Standard-Deployment-Konfiguration für operative Binärdateien. Jeder diagnostische String, Dateiverweis und jede Zeilennummer kompiliert vollständig heraus. `snd_status_t` kollabiert auf zwei Integer. Nichts weiter. Ein `SND_CRTLESS=ON`-Build legt `/NODEFAULTLIB`, keinen Windows-SDK-Header, ein PEB-Kommandozeilen-Frontend und ausschließlich native Backends darüber.

```cmake
set(SND_ENABLE_DEBUG   OFF   CACHE BOOL   "")
set(SND_BUILD_PAYLOADS OFF   CACHE BOOL   "")
set(SND_RANDOMIZE_SEED ON    CACHE BOOL   "")
set(SND_USE_DEFAULTS   ON    CACHE BOOL   "")
set(SND_HASH_ALGO    "DJB2"  CACHE STRING "")
add_subdirectory(vendor/SindriKit)
target_link_libraries(my_tool PRIVATE sindri::engine)
```

---

## Dokumentation

Vollständige Referenz unter [`docs/`](https://github.com/youssefnoob003/sindrikit/blob/main/docs/README.md):

- **[API Reference](https://github.com/youssefnoob003/sindrikit/blob/main/docs/api_reference.md)** — die vollständige öffentliche C-API (Funktionen, Typen, DI-Tabellen, Statuscodes)
- **[Getting Started](https://github.com/youssefnoob003/sindrikit/blob/main/docs/getting_started/README.md)** — Build-Tiers, CMake-Integration, Syscall-Bootstrap, erster Loader-/Injection-Workflow
- **[Architecture](https://github.com/youssefnoob003/sindrikit/blob/main/docs/architecture/README.md)** — Dependency Injection, Zustandsmaschinen, Facility-kodiertes Statussystem
- **[Primitives](https://github.com/youssefnoob003/sindrikit/blob/main/docs/primitives/README.md)** — Speicher, Module, Prozess, Mapping, Dateien, Thread, Syscalls, Ausführung (FFI, Heaven's Gate)
- **[Loaders](https://github.com/youssefnoob003/sindrikit/blob/main/docs/loaders/README.md)** — reflektives PE- und COFF/BOF-Laden
- **[Injection](https://github.com/youssefnoob003/sindrikit/blob/main/docs/injection/README.md)** — klassische, Early-Bird-APC- und Thread-Hijack-Injection (Shellcode, PE, COFF)
- **[Parsers](https://github.com/youssefnoob003/sindrikit/blob/main/docs/parsers/README.md)** — PE-, COFF- und Env-(PEB/NTDLL-)Parsing
- **[Common](https://github.com/youssefnoob003/sindrikit/blob/main/docs/common/README.md)** — CRT-freie Helfer, Puffer, Hashing, Status
- **[Examples & PoCs](https://github.com/youssefnoob003/sindrikit/blob/main/docs/examples/README.md)** — die `unified`-CLI (`load pe|coff`, `inject classic|apc|hijack`, `hg`)
- **[Tests](https://github.com/youssefnoob003/sindrikit/blob/main/docs/tests/README.md)** — Integrations-Runner und der PE-Mutator

*Geplant: eine **Evasion**-Domäne.*

---

## Haftungsausschluss

**SindriKit ist ausschließlich für Bildungs-, Forschungs- und autorisierte Red-Teaming-Zwecke gedacht.** Den vollständigen rechtlichen Haftungsausschluss und Informationen zu OpSec-Überlegungen finden Sie in der [Security Policy](https://github.com/youssefnoob003/sindrikit/blob/main/SECURITY.md).

---

## Lizenz

[MIT](https://github.com/youssefnoob003/sindrikit/blob/main/LICENSE)

---

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/735/c6b18a5428e9f22275a36c38df781706c1ddd2639451b49276a6cc0634dcb175.png" width="100%">
</p>
Tool herunterladen