Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SindriKit — مكتبة C أساسية لبناء قدرات هجومية موثوقة تشغيليًا | Kitploit
أدوات/GitHubGitHub/youssefnoob003/sindrikit
أطر اختبار الاختراقأطر الاستغلالتحليل الكودالهندسة العكسيةشيل كودالتعلم والتعليمالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubyoussefnoob003/sindrikit

SindriKit

مكتبة C أساسية لبناء قدرات هجومية موثوقة تشغيليًا

71550منذ 16 أيامتمت المراجعة من قبل Kitploit
عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
<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>التطوير الهجومي يستحق معمارية أفضل.</strong><br>
  <em>مكتبة بلغة C لبناء القدرات الهجومية.</em>
</p>

---

## المفهوم الأساسي

معظم الأدوات الهجومية تُضمّن آليات تنفيذها بشكل ثابت داخل منطق التقنية نفسها. فمُحمِّل الانعكاس (reflective loader) لا يقوم فقط بتخطيط صورة في الذاكرة؛ بل يخططها باستخدام سلسلة محددة ومُضمّنة مسبقًا من استدعاءات `VirtualAlloc` أو NTAPI الأصلية. وعندما يبدأ نظام EDR في مراقبة تلك السلسلة تحديدًا، تُجبر على إعادة كتابة الأداة بالكامل.

يحل SindriKit هذه المشكلة بفرض فصل الاهتمامات عبر جداول تجريد الواجهات:

1. **منطق التقنية:** (مثل المُحمِّلات، والحقن، والمرقّعات) يتعامل مع تتبع الحالة وتنسيق البيانات. ولا يملك أي معرفة بكيفية تخصيص الذاكرة أو كيفية إنشاء الخيوط.
2. **آليات التنفيذ:** (مثل Win32 API، وNative NTAPI، وDirect Syscalls) توجد داخل جداول API مستقلة وتُحقن في التقنية أثناء التشغيل.

من خلال نقل آليات التنفيذ إلى مؤشرات دوال وقت التشغيل، يمكنك تبديل استراتيجيتك بالكامل من استدعاءات Win32 إلى استدعاءات النظام المباشرة (direct syscalls) بسطر واحد من الكود — دون تغيير منطق تنفيذ الحمولة.

---

## معمارية التصميم

* **ملفات تنفيذ منفصلة (Decoupled Execution Profiles):** بدّل آليات الذاكرة، والوحدات، والتخطيط، والعمليات، والخيوط، والملفات عبر جداول مؤشرات دوال مستقلة (`snd_memory_api_t`، `snd_module_api_t`، `snd_process_api_t`، `snd_thread_api_t`، `snd_mapping_api_t`، `snd_file_api_t`) دون المساس بمنطق التقنية.
* **تغطية التقنيات:** تحميل **PE** الانعكاسي (EXE/DLL) و**COFF/BOF**، وحقن **classic** و**early-bird APC** فوق shellcode/PE/COFF، بالإضافة إلى FFI الواعي بالمعمارية وHeaven's Gate — كل ذلك فوق نفس ملفات التنفيذ القابلة للتركيب.
* **خط أنابيب استدعاءات النظام المتتالي (Cascading Syscall Pipeline):** محلّلات SSN قابلة للتوصيل (`snd_syscall_resolve_ssn_scan`، `snd_syscall_resolve_ssn_sort`) مع سلسلة أولويات، منفصلة عن المستدعيات: **مباشر**، أو **غير مباشر** (NTDLL gadget)، أو **مُنتحل** (تزوير ديناميكي لمكدس الاستدعاء Fat-Frame).
* **حالة مُرمّزة بالمنشأة (Facility-Encoded Status):** كل استدعاء قابل للفشل يُرجع `snd_status_t` — وهو رمز منشأة/محلي مُحزَّم بالإضافة إلى خطأ نظام التشغيل المُلتقط، مع سلاسل سياقية تُستبعد عند الترجمة في الطبقة الصامتة.
* **تشويش وقت الترجمة (Compile-Time Obfuscation):** يمكن تبديل خوارزميات تجزئة السلاسل وAPI (DJB2، FNV1A) عالميًا عبر CMake. وتقوم عملية الترجمة تلقائيًا بتعشية البذرة العالمية لتغيير التوقيعات الساكنة.
* **محرك التحوّل (Mutation Engine):** يتيح تعددًا شكليًا عميقًا عبر `SND_MORPH`. يولّد توقيعات ثنائية فريدة في كل بناء عبر حقن مسندات مبهمة متغيرة (volatile opaque predicates) في كود C، وعمليات رياضية/NOPs مكافئة وظيفيًا في كتل Assembly، وخلط تخطيط الذاكرة للبنى الأساسية.
* **بناءات الإصدار (Release Builds):** طبقة صامتة تُزيل جميع السلاسل التشخيصية وواصفات الملفات وإطارات التتبع؛ وبناءات `SND_CRTLESS` تذهب أبعد من ذلك عبر `/NODEFAULTLIB`، وبدون ترويسة SDK، وواجهة أمامية PEB، وخلفيات أصلية فقط.

---

## البدء السريع

يوفّر المستودع واجهة سطر أوامر `unified` واحدة تمارس كل ملف تنفيذ:

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

يدعم `unified` الأوامر `load pe|coff`، و`inject classic|apc|hijack` (shell، PE، COFF)، و`hg`، وكل منها فوق `--win`/`--nt`/`--sys`. راجع [الأمثلة و PoCs](https://github.com/youssefnoob003/sindrikit/blob/main/docs/examples/README.md) و[البدء](https://github.com/youssefnoob003/sindrikit/blob/main/docs/getting_started/README.md).

---

## دمج SindriKit

```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
```

سطران فقط لترث أداتك كل قدرات SindriKit: تحليل PE وCOFF، والتحميل الانعكاسي، واستدعاءات النظام المتتالية، وملفات الحقن.

---

## المحرك

### طبقة تجريد API

```
        ┌────────────────────────────────────────────────────────────────────────────┐
        │                          ANY OFFENSIVE INTENT                              │
        │    Loader · Injector · Spoofer · Patcher · Bypasser · Harvester · ...      │
        ├────────────────────────────────────────────────────────────────────────────┤
        │                     SINDRIKIT API ABSTRACTION LAYER                        │
        │      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 Profile  │    Native Profile    │    Bring Your Own Mechanic       │
        │  VirtualAlloc    │  NtAllocateVirtual   │  Driver · ROP · Exotic           │
        │  LoadLibraryA    │  PEB Walk + EAT      │  Operator-defined functions      │
        └──────────────────┴──────────────────────┴──────────────────────────────────┘
```

عمليًا، هذا يعني أن كل نطاق يتبع نفس العقد:

```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);
```

### خط أنابيب استدعاءات النظام المتتالي

يتعامل SindriKit مع تحليل استدعاءات النظام كآلية قابلة للحقن، حيث يكدّس الاستراتيجيات بترتيب الأولوية. ويتابع المحرك حتى تنجح إحداها:

```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);
```

المستدعي منفصل عن تحليل SSN — بدّل بين استدعاءات النظام المباشرة وغير المباشرة والمنتحلة دون تعديل كود النطاق. يقفز الاستدعاء غير المباشر إلى gadget شرعي في NTDLL بحيث يبقى عنوان الإرجاع داخل `ntdll.dll`؛ أما الاستدعاء المنتحل فيزرع إضافةً إلى ذلك عنوان إرجاع حقيقي للمستدعي داخل "Fat Frame" يُكتشف ديناميكيًا، بحيث تبقى عمليات فك مكدس الاستدعاء متماسكة.

### مرونة الخوارزميات وقت الترجمة

يُزال كل اسم API وسلسلة وحدة من الملف الثنائي النهائي وقت الترجمة عبر متغير CMake واحد:

```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
```

تُحسب كل تجزئة ببذرة مُولّدة عشوائيًا (إذا كان `SND_RANDOMIZE_SEED=ON`). ويتغير البصمة الساكنة بالكامل بين عمليات الترجمة دون المساس بسطر واحد من C.

### FFI الديناميكي الواعي بالمعمارية

جسر Assembly مخصص بـ MASM لاستدعاء دوال وقت التشغيل بشكل عشوائي. تتبع بناءات x64 اصطلاح الاستدعاء Microsoft x64 بدقة (مساحة الظل، وموضع الوسائط في السجلات، ومحاذاة المكدس). أما بناءات x86 فتدفع الوسائط بترتيب عكسي مع دعم أهداف `cdecl` و`stdcall` معًا.

### محلّل PE مع فحص الحدود

محلّل PE32/PE32+ موحّد مع علم `is_mapped` يتعامل بشكل صحيح مع كل من الصور الخام على القرص وطرق العرض المخططة في الذاكرة. يُتحقق من كل وصول إلى دليل بيانات مقابل حدود المخزن المتتبعة قبل إلغاء الإشارة. ويدعم تحليل التصدير سلاسل إعادة التوجيه (forwarder chains) حتى العمق 4 مع بحث قائم على التجزئة.

مُختبر مقابل:
- أكثر من 40 تركيبة اختبار أساسية تستهدف حالات EXEs وDLLs الحدّية، والوسائط الخاطئة، والتصديرات المفقودة، واستدعاءات TLS عبر x86 وx64.
- أكثر من 100 تحوّل PE ديناميكي مُولّد بواسطة وحدة `pe_mutator`: أسماء أقسام مُصفّرة، وفائض أعداد صحيحة، وحدود `e_lfanew` غير صالحة، واستيرادات مشوّهة.
- مجموعة Corkami الكاملة: تُحمّل العينات الصالحة بنظافة، وترفض العينات المشوّهة بنظافة دون انهيار عبر 99% من العينات.

### مُحمِّل COFF / BOF

تقنية تحميل ثانية تتعامل مع ملفات كائن COFF غير المرتبطة (Beacon Object Files): تحليل محدود للترويسات والأقسام والرموز وعمليات إعادة التموضع؛ وتحليل الرموز الخارجية `MODULE$Function` عبر `mod_api` المحقون؛ وtrampolines من نوع `JMP [RIP+0]` على x64 للاستدعاءات خارج النطاق؛ وتنفيذ نقطة دخول مُسمّاة (افتراضيًا `go`) — محليًا أو مُرسَلة إلى عملية بعيدة.

### سياقات النطاق المتتبعة للحالة

تُدار كل عملية هجومية عبر بنية سياق منفصلة مع تعداد للمراحل. ويمكن إيقاف العمليات مؤقتًا بين المراحل لتشويش النوم (sleep obfuscation) أو النشر المرحلي، واستئنافها بنظافة، وفحصها لتحديد نقطة الفشل الدقيقة وصولًا إلى النظام الفرعي والسبب.

---

## فلسفة تصميم API

هيّئ خط أنابيب استدعاءات النظام مرة واحدة (النمط النموذجي):

```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);
```

المستدعي منفصل عن تحليل SSN — بدّل بين استدعاءات النظام المباشرة وغير المباشرة والمنتحلة دون تعديل كود النطاق. يقفز الاستدعاء غير المباشر إلى gadget شرعي في NTDLL بحيث يبقى عنوان الإرجاع داخل `ntdll.dll`؛ أما الاستدعاء المنتحل فيزرع إضافةً إلى ذلك عنوان إرجاع حقيقي للمستدعي داخل "Fat Frame" يُكتشف ديناميكيًا، بحيث تبقى عمليات فك مكدس الاستدعاء متماسكة.

بدّل ملف التنفيذ بإسناد واحد:

```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)
```

يتبع تحليل الوحدات نفس النمط (`snd_mod_win` مقابل `snd_mod_nt`). لا توجد خلفية وحدات مدعومة باستدعاءات النظام — فالاستيرادات تستخدم PEB walk + EAT حتى في ملفات `_sys` الكاملة.

---

## طبقات البناء

### طبقة التصحيح — `SND_ENABLE_DEBUG=ON`

للتطوير المحلي. يتوسّع `snd_status_t` ليشمل `file` و`line` ومخزن سلسلة `context` بحجم 128 بايت. ويُصدر `SND_ERR_CTX` و`SND_DEBUG_PRINT` انتقالات آلة الحالة، وقيم حقول PE المحلّلة، ونتائج تحليل استدعاءات النظام. استخدم `SND_USE_PRINTF=ON` لتوجيه المخرجات إلى `stdout` بدلًا من وحدة تحكم التصحيح.

### الطبقة الصامتة — `SND_ENABLE_DEBUG=OFF`

تكوين النشر القياسي للملفات الثنائية التشغيلية. تُستبعد كل سلسلة تشخيصية ومرجع ملف ورقم سطر بالكامل عند الترجمة. يتقلّص `snd_status_t` إلى عددين صحيحين. لا شيء غير ذلك. ويضيف بناء `SND_CRTLESS=ON` طبقة فوق ذلك عبر `/NODEFAULTLIB`، وبدون ترويسة Windows SDK، وواجهة أمامية لسطر أوامر PEB، وخلفيات أصلية فقط.

```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)
```

---

## التوثيق

المرجع الكامل تحت [`docs/`](https://github.com/youssefnoob003/sindrikit/blob/main/docs/README.md):

- **[مرجع API](https://github.com/youssefnoob003/sindrikit/blob/main/docs/api_reference.md)** — واجهة C العامة الكاملة (الدوال، والأنواع، وجداول DI، ورموز الحالة)
- **[البدء](https://github.com/youssefnoob003/sindrikit/blob/main/docs/getting_started/README.md)** — طبقات البناء، وتكامل CMake، وتهيئة استدعاءات النظام، وأول سير عمل للمُحمِّل/الحقن
- **[المعمارية](https://github.com/youssefnoob003/sindrikit/blob/main/docs/architecture/README.md)** — حقن التبعيات، وآلات الحالة، ونظام الحالة المُرمّز بالمنشأة
- **[الأساسيات (Primitives)](https://github.com/youssefnoob003/sindrikit/blob/main/docs/primitives/README.md)** — الذاكرة، والوحدات، والعمليات، والتخطيط، والملفات، والخيوط، واستدعاءات النظام، والتنفيذ (FFI، Heaven's Gate)
- **[المُحمِّلات](https://github.com/youssefnoob003/sindrikit/blob/main/docs/loaders/README.md)** — التحميل الانعكاسي لـ PE وCOFF/BOF
- **[الحقن](https://github.com/youssefnoob003/sindrikit/blob/main/docs/injection/README.md)** — الحقن classic، وearly-bird APC، وthread-hijack (shellcode، PE، COFF)
- **[المحلّلات](https://github.com/youssefnoob003/sindrikit/blob/main/docs/parsers/README.md)** — تحليل PE وCOFF وenv (PEB/NTDLL)
- **[المشتركات (Common)](https://github.com/youssefnoob003/sindrikit/blob/main/docs/common/README.md)** — مساعدات خالية من CRT، والمخازن، والتجزئة، والحالة
- **[الأمثلة و PoCs](https://github.com/youssefnoob003/sindrikit/blob/main/docs/examples/README.md)** — واجهة `unified` CLI (`load pe|coff`، `inject classic|apc|hijack`، `hg`)
- **[الاختبارات](https://github.com/youssefnoob003/sindrikit/blob/main/docs/tests/README.md)** — مشغّلات التكامل ومحوّل PE

*مُخطَّط: نطاق **Evasion**.*

---

## إخلاء المسؤولية

**SindriKit مُصمَّم لأغراض تعليمية وبحثية وللفرق الحمراء المصرّح لها فقط.** للحصول على إخلاء المسؤولية القانوني الكامل ومعلومات بشأن اعتبارات OpSec، راجع [سياسة الأمان](https://github.com/youssefnoob003/sindrikit/blob/main/SECURITY.md).

---

## الترخيص

[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>
تنزيل الأداة