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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
qiling — إطار محاكاة ثنائي حقيقي قابل للبرمجة | Kitploit
أدوات/GitHubGitHub/qilingframework/qiling
أطر اختبار الاختراقالتحليل الديناميكي (عزل)الاستغلالالهندسة العكسيةمصممي الأخطاءالاختبار العشوائيتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالتعلم والتعليمتحليل البرامج الثابتةالأفضل في تحليل البرامج الثابتة #19
6.1k79673منذ 25 أيامتمت المراجعة من قبل Kitploit
GitHubqilingframework/qiling

qiling

إطار محاكاة ثنائي حقيقي قابل للبرمجة

عرض المستودعالموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

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

Documentation Status Downloads Chat on Telegram


حالات استخدام Qiling والمدونة والأعمال ذات الصلة

Qiling هو إطار محاكاة ثنائية متقدم، مع الميزات التالية:

  • محاكاة منصات متعددة: Windows, macOS, Linux, Android, BSD, UEFI, DOS, MBR.
  • محاكاة معماريات متعددة: 8086, X86, X86_64, ARM, ARM64, MIPS, RISC-V, PowerPC.
  • دعم تنسيقات ملفات متعددة: PE, Mach-O, ELF, COM, MBR.
  • دعم برامج تشغيل Windows (.sys) ووحدات نواة Linux (.ko) ونواة macOS (.kext) عبر Demigod.
  • محاكاة وتشغيل الكود في بيئة معزولة (sandbox).
  • يوفر صندوق رمل قابل للتكوين بالكامل.
  • يوفر واجهات برمجة تطبيقات عميقة للذاكرة والسجلات ومستوى نظام التشغيل ونظام الملفات.
  • مراقبة دقيقة الحبيبات: تسمح بالخطافات (hooks) على مستويات مختلفة (تعليمات/كتلة أساسية/وصول للذاكرة/استثناء/استدعاء نظام/إدخال-إخراج/إلخ).
  • يوفر واجهة برمجة تطبيقات على مستوى الآلة الافتراضية مثل حفظ واستعادة حالة التنفيذ الحالية.
  • يدعم قدرات التصحيح عبر المعماريات والمنصات.
  • مصحح مدمج مع إمكانية التصحيح العكسي.
  • يسمح بالتعديل الديناميكي للكود الجاري تشغيله، بما في ذلك المكتبات المحملة.
  • إطار عمل حقيقي بلغة Python، مما يسهل بناء أدوات تحليل أمنية مخصصة فوقه.

كما ظهر Qiling في العديد من المؤتمرات الدولية.

2022:

  • Black Hat, EU
  • Black Hat, MEA

2021:

  • Black Hat, USA
  • Hack In The Box, Amsterdam
  • Black Hat, Asia

2020:

  • Black Hat, Europe
  • Black Hat, USA
  • Black Hat, USA (Demigod)
  • Black Hat, Asia
  • Hack In The Box, Lockdown 001
  • Hack In The Box, Lockdown 002
  • Hack In The Box, Cyberweek
  • Nullcon

2019:

  • DEFCON, USA
  • Hitcon
  • Zeronights

Qiling مدعوم من محرك Unicorn.

قم بزيارة موقعنا لمزيد من المعلومات.


الترخيص

هذا البرنامج هو برنامج حر؛ يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة؛ إما الإصدار 2 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.


Qiling مقابل المحاكيات الأخرى

هناك العديد من المحاكيات مفتوحة المصدر، لكن أقرب مشروعين إلى Qiling هما Unicorn و QEMU user mode. يشرح هذا القسم الفروق الرئيسية بين Qiling وبينهما.

Qiling مقابل محرك Unicorn
  • Unicorn هو مجرد محاك لوحدة المعالجة المركزية، لذا فهو يركز على محاكاة تعليمات CPU، ويمكنه فهم ذاكرة المحاكي. أبعد من ذلك، لا يدرك Unicorn المفاهيم عالية المستوى، مثل المكتبات الديناميكية، استدعاءات النظام، معالجة الإدخال/الإخراج أو تنسيقات الملفات القابلة للتنفيذ مثل PE أو Mach-O أو ELF. ونتيجة لذلك، يمكن لـ Unicorn فقط محاكاة تعليمات الآلة الأولية، بدون سياق نظام التشغيل.
  • Qiling مصمم كإطار عمل عالي المستوى، يستخدم Unicorn لمحاكاة تعليمات CPU، لكن يمكنه فهم نظام التشغيل: لديه محملات تنسيقات ملفات قابلة للتنفيذ (لـ PE و Mach-O و ELF حاليًا)، ومحملات ديناميكية (حتى نتمكن من تحميل المكتبات المشتركة ونقلها)، ومعالجات استدعاء النظام والإدخال/الإخراج. لهذا السبب، يمكن لـ Qiling تشغيل ملف ثنائي قابل للتنفيذ دون الحاجة إلى نظام التشغيل الأصلي.
Qiling مقابل وضع المستخدم في QEMU

وضع المستخدم في QEMU يقوم بعمل مماثل لمحاكينا، أي محاكاة ملفات ثنائية قابلة للتنفيذ بالكامل عبر المعماريات. ومع ذلك، يقدم Qiling بعض الفروق المهمة مقارنة بوضع المستخدم في QEMU:

  • Qiling هو إطار تحليل حقيقي، يسمح لك ببناء أدوات التحليل الديناميكي الخاصة بك فوقه (بلغة Python). في حين أن QEMU مجرد أداة، وليس إطار عمل.
  • يمكن لـ Qiling إجراء التتبع الديناميكي، ويمكنه حتى تعديل الكود أثناء التشغيل. QEMU لا يفعل أيًا منهما.
  • ليس فقط يعمل عبر المعماريات، Qiling هو أيضًا عبر المنصات. على سبيل المثال، يمكنك تشغيل ملف Linux ELF على نظام Windows. في المقابل، وضع المستخدم في QEMU يعمل فقط مع ثنائيات نفس نظام التشغيل، مثل Linux ELF على Linux، بسبب طريقة إعادة توجيه استدعاءات النظام من الكود المحاكى إلى نظام التشغيل الأصلي.
  • يدعم Qiling المزيد من المنصات، بما في ذلك Windows و macOS و Linux و BSD. وضع المستخدم في QEMU يمكنه معالجة Linux و BSD فقط.

التثبيت

يرجى الاطلاع على ملف دليل الإعداد لمعرفة كيفية تثبيت إطار Qiling.


أمثلة

المثال أدناه يوضح كيفية استخدام إطار Qiling بأبسط طريقة لمحاكاة ملف Windows قابل للتنفيذ.

from qiling import Qiling

if __name__ == "__main__":
    # initialize Qiling instance, specifying the executable to emulate and the emulated system root.
    # note that the current working directory is assumed to be Qiling home
    ql = Qiling([r'examples/rootfs/x86_windows/bin/x86_hello.exe'], r'examples/rootfs/x86_windows')

    # start emulation
    ql.run()
  • المثال التالي يوضح كيف يمكن تعديل تطبيق Windows crackme ديناميكيًا لجعله يعرض دائمًا مربع حوار 'تهانينا'.
from qiling import Qiling

def force_call_dialog_func(ql: Qiling):
    # get DialogFunc address from current stack frame
    lpDialogFunc = ql.stack_read(-8)

    # setup stack memory for DialogFunc
    ql.stack_push(0)
    ql.stack_push(1001)     # IDS_APPNAME
    ql.stack_push(0x111)    # WM_COMMAND
    ql.stack_push(0)

    # push return address
    ql.stack_push(0x0401018)

    # resume emulation from DialogFunc address
    ql.arch.regs.eip = lpDialogFunc


if __name__ == "__main__":
    # initialize Qiling instance
    ql = Qiling([r'rootfs/x86_windows/bin/Easy_CrackMe.exe'], r'rootfs/x86_windows')

    # NOP out some code
    ql.patch(0x004010B5, b'\x90\x90')
    ql.patch(0x004010CD, b'\x90\x90')
    ql.patch(0x0040110B, b'\x90\x90')
    ql.patch(0x00401112, b'\x90\x90')

    # hook at an address with a callback
    ql.hook_address(force_call_dialog_func, 0x00401016)
    ql.run()

الفيديو أدناه على YouTube يوضح كيفية عمل المثال أعلاه.

محاكاة برامج ثابتة لموجه ARM على مضيف Ubuntu x64

يقوم إطار Qiling بتعديل ومحاكاة /usr/bin/httpd لموجه ARM على مضيف x86_64 Ubuntu.

Qiling Tutorial: Emulating and Fuzz ARM router firmware

إضافة Qiling لـ IDA Pro: تتبع وفك تشفير سر Mirai

تنزيل الأداة