Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sRDI — تنفيذ شيلكود لحقن DLL الانعكاسي. تحويل DLLs إلى شيلكود مستقل عن الموقع. | Kitploit
أدوات/GitHubGitHub/monoxgas/srdi
تحليل الذاكرة الجنائيتوليد الحمولةالاستغلالالتهرب من IDS/IPSشيل كودما بعد الاستغلالاختبار الاختراقالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولاتالأفضل في التهرب من IDS/IPS #8
2.5k49766منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
الأفضل في تطوير الحمولات #2
الأفضل في توليد الحمولة #3
الأفضل في شيل كود #2
الأفضل في توليد شيفرة القشرة #3
GitHubmonoxgas/srdi

sRDI

تنفيذ شيلكود لحقن DLL الانعكاسي. تحويل DLLs إلى شيلكود مستقل عن الموقع.

عرض المستودع

sRDI - حقن DLL الانعكاسي عبر شيلكود

يتيح sRDI تحويل ملفات DLL إلى شيلكود مستقل عن الموقع. يحاول أن يكون محمل PE كامل الوظائف يدعم أذونات الأقسام الصحيحة، واستدعاءات TLS، وعمليات التحقق من السلامة. يمكن اعتباره محمل PE شيلكود مربوطًا بـ DLL مضغوط.

تتحقق الوظيفة عبر مكونين:

  • مشروع C يقوم بتجميع تنفيذ محمل PE (RDI) إلى شيلكود
  • كود تحويل يربط DLL وRDI وبيانات المستخدم معًا باستخدام bootstrap

يتكون هذا المشروع من العناصر التالية:

  • ShellcodeRDI: يقوم بتجميع الشيلكود لمحمل DLL
  • NativeLoader: يحول DLL إلى شيلكود إذا لزم الأمر، ثم يحقن في الذاكرة
  • DotNetLoader: تطبيق C# لـ NativeLoader
  • Python\ConvertToShellcode.py: يحول DLL إلى شيلكود في مكانه
  • Python\EncodeBlobs.py: يشفر كتل sRDI المترجمة للتضمين الثابت
  • PowerShell\ConvertTo-Shellcode.ps1: يحول DLL إلى شيلكود في مكانه
  • FunctionTest: يستورد دالة sRDI C لاختبار التصحيح
  • TestDLL: مثال DLL يتضمن دالتين مصدرتين للاستدعاء عند التحميل وبعده

لا يحتاج DLL إلى أن يتم تجميعه مع RDI، ومع ذلك فإن التقنية متوافقة بشكل متبادل.

حالات الاستخدام / أمثلة

قبل الاستخدام، أوصي بأن تتعرف على حقن DLL الانعكاسي والغرض منه.

تحويل DLL إلى شيلكود باستخدام بايثون

root@kitploit:~
from ShellcodeRDI import *

dll = open("TestDLL_x86.dll", 'rb').read()
shellcode = ConvertToShellcode(dll)

تحميل DLL إلى الذاكرة باستخدام محمل C#

root@kitploit:~
DotNetLoader.exe TestDLL_x64.dll

تحويل DLL باستخدام سكريبت بايثون وتحميله مع Native EXE

root@kitploit:~
python ConvertToShellcode.py TestDLL_x64.dll
NativeLoader.exe TestDLL_x64.bin

تحويل DLL باستخدام باورشيل وتحميله مع Invoke-Shellcode

root@kitploit:~
Import-Module .\Invoke-Shellcode.ps1
Import-Module .\ConvertTo-Shellcode.ps1
Invoke-Shellcode -Shellcode (ConvertTo-Shellcode -File TestDLL_x64.dll)

العلامات (Flags)

يستخدم كود محمل PE الوسيط flags للتحكم في خيارات منطق التحميل المختلفة:

  • SRDI_CLEARHEADER [0x1]: يتم مسح رأس DOS وDOS Stub لـ DLL الهدف بالكامل بأصفار البايت عند التحميل (باستثناء e_lfanew). قد يتسبب هذا في مشاكل مع واجهات برمجة تطبيقات Windows العادية عند توفير العنوان الأساسي كـ HMODULE زائف.
  • SRDI_CLEARMEMORY [0x2]: بعد استدعاء الدوال في الوحدة المحملة (DllMain وأي مصدرات)، سيتم مسح بيانات DLL من الذاكرة. هذا خطير إذا كنت تتوقع الاستمرار في تنفيذ كود خارج الوحدة (الخيوط / GetProcAddressR).
  • SRDI_OBFUSCATEIMPORTS [0x4]: سيتم ترتيب الواردات في الوحدة بشكل عشوائي قبل بدء تصحيح IAT. بالإضافة إلى ذلك، يمكن استخدام البتات العليا 16 من العلامة لتخزين عدد الثواني للتوقف قبل معالجة الوارد التالي. على سبيل المثال، flags | (3 << 16) سيتوقف لمدة 3 ثوانٍ بين كل وارد.
  • SRDI_PASS_SHELLCODE_BASE [0x8]: بدلاً من تمرير بيانات المستخدم المقدمة إلى الدالة المصدرة، سيقوم sRDI بتمرير العنوان الأساسي لكتلة الشيلكود المنفذة حاليًا. يمكن أن يكون هذا مفيدًا للتنظيف الذاتي داخل وحدات أكثر تقدمًا.

البناء

تم بناء هذا المشروع باستخدام Visual Studio 2019 (v142) وWindows SDK 10. سكريبت بايثون مكتوب باستخدام Python 3.

توجد سكريبتات بايثون وباورشيل في:

  • Python\ConvertToShellcode.py
  • PowerShell\ConvertTo-Shellcode.ps1

بعد بناء المشروع، ستكون الملفات الثنائية الأخرى موجودة في:

  • bin\NativeLoader.exe
  • bin\DotNetLoader.exe
  • bin\TestDLL_<arch>.dll
  • bin\ShellcodeRDI_<arch>.bin

إذا كنت ترغب في تحديث الكتل الثابتة داخل أي من الأدوات:

root@kitploit:~
> python .\lib\Python\EncodeBlobs.py -h
usage: EncodeBlobs.py [-h] solution_dir

sRDI Blob Encoder

positional arguments:
  solution_dir  Solution Directory

optional arguments:
  -h, --help    show this help message and exit

> python lib\Python\EncodeBlobs.py C:\code\srdi

[+] Updated C:\code\srdi\Native/Loader.cpp
[+] Updated C:\code\srdi\DotNet/Program.cs
[+] Updated C:\code\srdi\Python/ShellcodeRDI.py
[+] Updated C:\code\srdi\PowerShell/ConvertTo-Shellcode.ps1

البدائل

إذا وجدت كودي مقرفًا، أو كنت تبحث عن مشروع بديل لمحمل PE في الذاكرة، فاطلع على بعض هذه:

  • https://github.com/fancycode/MemoryModule - ربما يكون أحد أنظف محملات PE الموجودة، مرجع رائع.
  • https://github.com/TheWover/donut - هل تريد تحويل تجميعات .NET؟ أو ماذا عن JScript؟
  • https://github.com/hasherezade/pe_to_shellcode - يولد هجائن PE+شيلكود متعددة الأشكال.
  • https://github.com/DarthTon/Blackbone - مكتبة كبيرة تحتوي على العديد من بدائيات اختراق/خطاف الذاكرة.

الاعتمادات

أساس هذا المشروع مشتق من "حقن DLL الانعكاسي المحسن" من Dan Staples وهو نفسه مشتق من المشروع الأصلي لـ Stephen Fewer.

إطار المشروع لتجميع كود C كشيلكود مأخوذ من بحث Mathew Graeber "PIC_BindShell"

تنزيل الأداة