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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
zig-pe — أداة تحميل PE انعكاسية مكتوبة بلغة Zig. تقوم بتحميل وتنفيذ ملفات PE الأصلية و.NET مباشرة من الذاكرة. | Kitploit
أدوات/GitHubGitHub/thoxy67/zig-pe
الاستغلالما بعد الاستغلالاختبار الاختراقالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubthoxy67/zig-pe

zig-pe

أداة تحميل PE انعكاسية مكتوبة بلغة Zig. تقوم بتحميل وتنفيذ ملفات PE الأصلية و.NET مباشرة من الذاكرة.

عرض المستودع
6778منذ 7 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

zig-pe

مُحمّل PE انعكاسي مكتوب بلغة Zig. يقوم بتحميل وتنفيذ ملفات PE الأصلية وملفات .NET مباشرة من الذاكرة.

الميزات

خط أنابيب تحميل PE

  • تحليل رؤوس DOS و NT (PE32 و PE32+ في وقت التشغيل)
  • تعيين المقاطع (sections) إلى ذاكرة مُخصّصة
  • حل الواردات (بالاسم والترتيب، كتل PE32 ذات 4 بايت / PE32+ ذات 8 بايت)
  • تطبيق إعادة التوطين الأساسية (HIGHLOW، DIR64، ARM_MOV32، THUMB_MOV32)
  • حل الواردات المؤجلة (DataDirectory[13]، تنسيق RVA الحديث)
  • تسجيل معالجات الاستثناءات (RtlAddFunctionTable، x64/ARM64 فقط)
  • تعيين حمايات الذاكرة لكل مقطع
  • استدعاء استدعاءات TLS (DLL_PROCESS_ATTACH)
  • تنفيذ نقطة الدخول عبر CreateThread
  • التنظيف (إلغاء تسجيل جداول الاستثناءات، تحرير الذاكرة)

ميزات أمان متقدمة

  • تهيئة رمز الأمان (__security_cookie لأمان المخزن المؤقت /GS)
  • CFG (Control Flow Guard) - تسجيل أهداف الاستدعاء الصالحة عبر SetProcessValidCallTargets
  • SxS / سياق التنشيط - تفعيل البيانات المضمنة لتطبيقات واجهة المستخدم الرسومية
  • إبطال دليل الواردات المُقيّدة

حل جدول التصدير

وظائف مساعدة لحل الصادرات من صورة PE محمّلة:

  • getExportByName(base, ntheaders, name) — الحل بالاسم
  • getExportByOrdinal(base, ntheaders, ordinal) — الحل بالترتيب

يتعامل مع الصادرات المُعاد توجيهها تلقائيًا عن طريق تحميل DLL الهدف (مثلًا، "NTDLL.RtlAllocateHeap" يُحل إلى الدالة الفعلية في ntdll.dll).

حل مجموعة واجهة برمجة التطبيقات

يقوم تلقائيًا بحل مجموعات واجهة برمجة تطبيقات Windows (api-ms-win-*، ext-ms-win-*) إلى ملفات DLL المضيفة الفعلية باستخدام خريطة مجموعة ApiSet في PEB. يتيح ذلك تحميل ملفات PE التي تستورد من ملفات DLL لواجهة برمجة التطبيقات الافتراضية.

وظائف مساعدة

  • utils.detect_platform(buffer) — كشف ما إذا كان PE 32 بت أم 64 بت
  • utils.is_dotnet_assembly(ntheaders) — التحقق مما إذا كان PE هو تجميع .NET
  • utils.getDotNetVersion(buffer) — استخراج سلسلة إصدار بيئة تشغيل .NET من البيانات الوصفية
  • utils.rvaToFileOffset(buffer, rva) — تحويل RVA إلى إزاحة ملف خام

التوافق

  • تنفيذ الملفات الثنائية المُجمَّعة الأصلية (x86، x86_64، ARM، ARM64)
  • تنفيذ الملفات الثنائية المُجمَّعة لـ .NET عبر استضافة CLR
  • تمرير وسيطات سطر الأوامر لكل من الملفات التنفيذية الأصلية وملفات .NET
  • التحقق من بنية المعالج (يجب أن تتطابق بتات PE مع العملية المضيفة)

أنواع المعالجات المدعومة

البنيةرمز المعالجالبتات
i3860x014c32 بت
AMD640x866464 بت
IA640x020064 بت
ARM (ARMNT)0x01C432 بت
ARM640xAA6464 بت

المتطلبات الأساسية

  • مترجم Zig (الإصدار الأحدث موصى به)
  • نظام تشغيل Windows (يستخدم المشروع واجهات برمجة تطبيقات خاصة بـ Windows)

بناء المشروع

  1. استنساخ المستودع:

    git clone https://github.com/Thoxy67/zig-pe.git
    cd zig-pe
    
  2. بناء المشروع:

    zig build
    

خيارات البناء

zig build -Ddotnet=false  # تعطيل دعم .NET (مفعل افتراضيًا)

أهداف البناء

zig build                 # بناء جميع الأهداف
zig build run-putty64     # تشغيل مثال PE أصلي 64 بت
zig build run-putty32     # تشغيل مثال PE أصلي 32 بت
zig build run-dotnet      # تشغيل مثال تجميع .NET
zig build test            # تشغيل اختبارات الوحدة

الاستخدام

الاستخدام الأساسي (PE مدمج)

const pe = @import("pe");

pub fn main() !void {
    // تحميل وتنفيذ ملف PE مدمج
    try pe.RunPE.init(@embedFile("bin/app.exe")).run();
}

مع وسيطات سطر الأوامر

const pe = @import("pe");

pub fn main() !void {
    var loader = pe.RunPE.init(@embedFile("bin/app.exe"));
    try loader.runWithArgs(&.{ "arg1", "arg2", "arg3" });
}

التحميل من ملف

const std = @import("std");
const pe = @import("pe");

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();
    const allocator = gpa.allocator();

    const file_content = try std.fs.cwd().readFileAlloc(
        allocator,
        "path/to/executable.exe",
        std.math.maxInt(usize),
    );
    defer allocator.free(file_content);

    try pe.RunPE.init(file_content).run();
}

حل الصادرات من PE محمّل

const pe = @import("pe");

// بعد تحميل DLL في الذاكرة...
const base: [*]const u8 = @ptrCast(loaded_base);
const ntheaders = // ... الحصول على رؤوس NT

// الحل بالاسم
if (pe.getExportByName(base, ntheaders, "ExportedFunction")) |func_ptr| {
    const func: *const fn () void = @ptrCast(@alignCast(func_ptr));
    func();
}

// الحل بالترتيب
if (pe.getExportByOrdinal(base, ntheaders, 42)) |func_ptr| {
    // استخدام مؤشر الدالة
}

كيفية عمل تمرير الوسيطات

  • ملفات PE الأصلية: تُمرر الوسيطات عن طريق تعديل PEB CommandLine، بحيث تُعيد GetCommandLineW() الوسيطات المقدمة
  • تجميعات .NET: تُمرر الوسيطات مباشرة إلى Main(string[] args) عبر استدعاء CLR

اعتبارات الأمان

يتضمن هذا المشروع تحميل وتنفيذ كود عشوائي، مما قد يكون خطيرًا. استخدم هذا المُحمّل فقط مع ملفات PE موثوقة وفي بيئات مُتحكَّم بها. المؤلفون غير مسؤولين عن أي سوء استخدام أو ضرر يسببه هذا البرنامج.

المساهمة

المساهمات في zig-pe مرحب بها! لا تتردد في تقديم طلبات السحب، أو إنشاء مشكلات، أو نشر الكلمة.

  1. Fork المشروع
  2. إنشاء فرع الميزة الخاص بك (git checkout -b feature/AmazingFeature)
  3. تنفيذ التغييرات (git commit -m 'إضافة ميزة رائعة')
  4. دفع الفرع (git push origin feature/AmazingFeature)
  5. فتح طلب سحب

الترخيص

هذا المشروع مرخص بموجب ترخيص MIT - راجع ملف LICENSE للحصول على التفاصيل.

شكر وتقدير

  • مجتمع لغة البرمجة Zig
  • المساهمون في توثيق تنسيق ملف PE

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

هذا المشروع للأغراض التعليمية فقط. تأكد من أن لديك الحقوق والأذونات اللازمة قبل تحميل وتنفيذ أي ملف PE.

تنزيل الأداة