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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ret-sync — ret-sync هي مجموعة من الإضافات التي تساعد في مزامنة جلسة التصحيح (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) مع مفككات IDA/Ghidra/Binary Ninja. | Kitploit
أدوات/GitHubGitHub/bootleg/ret-sync
التحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءالأدوات والمكوناتتحليل الملفات الثنائية
GitHubbootleg/ret-sync

ret-sync

ret-sync هي مجموعة من الإضافات التي تساعد في مزامنة جلسة التصحيح (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) مع مفككات IDA/Ghidra/Binary Ninja.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ret-sync

ret-sync تعني مزامنة أدوات الهندسة العكسية. هي مجموعة من الإضافات التي تساعد في مزامنة جلسة تصحيح الأخطاء (WinDbg/GDB/LLDB/OllyDbg/OllyDbg2/x64dbg) مع مفكك الشيفرات (IDA/Ghidra/Binary Ninja). الفكرة الأساسية بسيطة: الاستفادة من أفضل ما في العالمين (التحليل الثابت والديناميكي).

توفر لنا أدوات تصحيح الأخطاء والتحليل الديناميكي:

  • عرض محلي، مع سياق ديناميكي حي (السجلات، الذاكرة، إلخ.)
  • ميزات/واجهات برمجة تطبيقات متخصصة مدمجة (مثال: WinDbg's !peb، !drvobj، !address، إلخ.)

توفر لنا مفككات الشيفرات والتحليل الثابت:

  • عرض كلي للوحدات
  • تحليل الشيفرات، التوقيعات، الأنواع، إلخ.
  • عرض رسومي رائع
  • تفكيك عكسي (decompilation)
  • تخزين دائم للمعرفة داخل IDBs/GPRs

الميزات الرئيسية:

  • مزامنة عروض الرسوم البيانية والتفكيك العكسي مع حالة مصحح الأخطاء
  • لا حاجة للتعامل مع ASLR، يتم إعادة حساب العناوين فورًا
  • نقل البيانات (تعليق، إخراج أمر) من مصحح الأخطاء إلى مفكك الشيفرات
  • يمكن مزامنة عدة IDBs/GPRs في نفس الوقت مما يسمح بتتبع سهل عبر وحدات متعددة
  • يمكن أن يكون مفكك الشيفرات ومصحح الأخطاء على مضيفين مختلفين / أجهزة افتراضية

ret-sync هو فرع من qb-sync الذي قمت بتطويره وصيانته أثناء عملي في Quarkslab.


جدول المحتويات

  • محتوى المستودع
  • المتطلبات العامة
  • الإصدار الثنائي
  • تكوين ret-sync
  • التثبيت
    • إضافة IDA
    • إضافة Ghidra
    • إضافة Binary Ninja
    • إضافة WinDbg
    • تثبيت GNU gdb (GDB)
    • تثبيت LLDB
    • تثبيت OllyDbg 1.10
    • تثبيت OllyDbg2
    • تثبيت x64dbg
  • الاستخدام
    • أوامر مصحح الأخطاء في ret-sync
    • استخدام IDA
    • استخدام Ghidra
    • استخدام Binary Ninja
    • استخدام WinDbg
    • استخدام GNU gdb (GDB)
    • استخدام LLDB
    • استخدام OllyDbg 1.10
    • استخدام OllyDbg2
    • استخدام x64dbg
    • استخدام مكتبة Python
  • التوسعة
  • المهام المتبقية
  • الأخطاء/القيود المعروفة
  • الترخيص
  • التحية

محتوى المستودع

إضافات مصحح الأخطاء:

  • ext_windbg/sync: ملفات المصدر لإضافة WinDbg، بعد البناء: sync.dll
  • ext_gdb/sync.py: إضافة GDB
  • ext_lldb/sync.py: إضافة LLDB
  • ext_olly1: إضافة OllyDbg 1.10
  • ext_olly2: إضافة OllyDbg v2
  • ext_x64dbg: إضافة x64dbg

إضافات مفكك الشيفرات:

  • ext_ida/SyncPlugin.py
  • ext_ghidra/dist/ghidra_*_retsync.zip: إضافة Ghidra
  • ext_bn/retsync: إضافة Binary Ninja

وإضافة المكتبة:

  • ext_lib/sync.py: مكتبة Python مستقلة

المتطلبات العامة

تتطلب إضافات IDA و GDB إعداد Python صالح. يتم دعم Python 2 (>=2.7) و Python 3.

الإصدار الثنائي

يتم تقديم الثنائيات المجمعة مسبقًا لمصححي الأخطاء WinDbg/OllyDbg/OllyDbg2/x64dbg من خلال خط أنابيب Azure DevOps: Build Status

اختر البناء الأخير وتحقق من القطع الأثرية تحت قسم Related: 6 published.

يتم توفير أرشيف إضافة مجمعة مسبقًا لإضافة Ghidra في ext_ghidra/dist.

تكوين ret-sync

يجب أن يعمل ret-sync دون أي إعدادات إضافية لمعظم المستخدمين الذين لديهم إعداد نموذجي: مصحح الأخطاء ومفكك الشيفرات على نفس المضيف، أسماء الوحدات متطابقة.

ومع ذلك، في بعض السيناريوهات قد يتم استخدام تكوين محدد. لذلك، تتحقق الإضافات والمكونات الإضافية من وجود ملف تكوين عام اختياري باسم .sync في الدليل الرئيسي للمستخدم. يجب أن يكون ملف .INI صالحًا.

بالإضافة إلى ذلك، تبحث إضافات IDA و Ghidra أيضًا عن ملف التكوين في دليل IDB أو المشروع (<project>.rep) أولاً للسماح بإعدادات محلية لكل IDB/مشروع. إذا كان ملف التكوين المحلي موجودًا، يتم تجاهل ملف التكوين العام.

القيم المعلنة في ملفات التكوين هذه تتجاوز القيم الافتراضية. يرجى ملاحظة أنه لا يتم إنشاء ملف .sync افتراضيًا.

نوضح أدناه ثلاثة سيناريوهات شائعة حيث يكون ملف التكوين مفيدًا/ضروريًا:

  • التصحيح عن بعد
  • عدم تطابق أسماء الوحدات
  • PID مفقود

التصحيح عن بعد: مصحح الأخطاء ومفكك الشيفرات على مضيفين مختلفين

يستخدم قسم [INTERFACE] لتخصيص الإعدادات المتعلقة بالشبكة. لنفترض أن شخصًا ما يريد مزامنة IDA مع مصحح أخطاء يعمل داخل جهاز افتراضي (أو ببساطة مضيف آخر)، وهو سيناريو شائع لتصحيح النواة عن بعد.

ببساطة قم بإنشاء ملفي .sync:

  • واحد على الجهاز الذي تم تثبيت IDA عليه، في دليل IDB:
  • بالنسبة لـ Ghidra، ضعه في الدليل الرئيسي، مثل "/home/user" أو "C:\Users\user".``` [INTERFACE] host=192.168.128.1 port=9234
يخبر إضافة **ret-sync** ``IDA`` بالاستماع على الواجهة ``192.168.128.1`` مع المنفذ ``9234``. وغني عن القول أن هذه الواجهة يجب أن تكون قابلة للوصول من المضيف البعيد أو الآلة الافتراضية.

* واحدة على الجهاز الذي يتم تنفيذ المصحح عليه، في دليل المستخدم الرئيسي:```
[INTERFACE]
host=192.168.128.1
port=9234

يخبر مكون ret-sync الإضافي للمصحح بالاتصال بمكون ret-sync الإضافي لـ IDA الذي تم تكوينه مسبقًا للاستماع على هذه الواجهة.

ملاحظة: يجب عليك تحديد عنوان IP حقيقي هنا، وعدم استخدام 0.0.0.0. وذلك لأن المتغير يُستخدم من قبل مصادر متعددة سواء للربط أو الاتصال، لذا فإن استخدام 0.0.0.0 سيؤدي إلى أخطاء غريبة.

أسماء وحدات IDB والمصحح مختلفة```

[ALIASES] ntoskrnl_vuln.exe=ntkrnlmp.exe

يستخدم قسم ``[ALIASES]`` لتخصيص الاسم الذي يستخدمه مفكك (IDA/Ghidra) لتسجيل وحدة إلى موزع/مدير البرامج الخاص به.

افتراضيًا، تستخدم إضافات المفكك اسم ملف الإدخال. ومع ذلك، قد يكون المستخدم قد أعاد تسمية الملف مسبقًا ولم يعد الاسم مطابقًا لاسم العملية الفعلية أو الوحدة المحملة كما يراها المصحح.

هنا نخبر الموزع ببساطة أن يطابق الاسم `ntkrnlmp.exe` (الاسم الحقيقي) بدلاً من `ntoskrnl_vuln.exe` (اسم IDB).

## gdb مع واجهة تصحيح أخطاء Qt Creator

تغير واجهة تصحيح أخطاء Qt Creator طريقة تسجيل مخرجات أمر gdb. وبما أن هذا قد يتعارض مع المزامنة، يوجد خيار لاستخدام مخرجات gdb الخام للمزامنة بدلاً من ملف مؤقت. في ملف إعدادات .sync استخدم```
[GENERAL]
use_tmp_logging_file=false

إذا كنت ترغب في استخدام واجهة تصحيح Qt الأمامية للهدف.

الأجهزة المضمنة وغياب /proc/<pid>/maps

في بعض السيناريوهات، مثل تصحيح أخطاء الأجهزة المضمنة عبر المنفذ التسلسلي أو البرامج الثابتة الخام في QEMU، لا يكون gdb على علم بـ PID ولا يمكنه الوصول إلى /proc/<pid>/maps.

في هذه الحالات، يُستخدم قسم [INIT] لتمرير سياق مخصص إلى المكون الإضافي. يسمح بتجاوز بعض الحقول مثل PID وخرائط الذاكرة.

.sync مقتطف محتوى:``` [INIT] context = { "pid": 200, "mappings": [ [0x400000, 0x7A81158, 0x7681158, "asav941-200.qcow2|lina"] ] }

كل إدخال في التعيينات هو: ``mem_base``, ``mem_end``, ``mem_size``, ``mem_name``.


## تجاوز إعادة التوطين التلقائي للعناوين

في بعض السيناريوهات، مثل تصحيح أخطاء الأجهزة المضمنة أو الاتصال بواجهات التصحيح البسيطة، قد يكون من الأسهل تجاوز ميزة إعادة التوطين التلقائي للعناوين المطبقة في إضافات مفكك التجميع.

الخيار `use_raw_addr` مدعوم حاليًا فقط لـ Ghidra. في ملف تكوين .sync استخدم:```
[GENERAL]
use_raw_addr=true

التثبيت

ملحق IDA

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

IDA 9.2+ مطلوب. للإصدارات الأقدم، يرجى مراجعة المشروع قبل علامة ida9.2 من Tags المتاحة.

تثبيت ملحق IDA

لتثبيت IDA، انسخ المجلد Syncplugin.py و retsync من ext_ida إلى دليل إضافات IDA، على سبيل المثال:

  • C:\Program Files\IDA Pro 7.4\plugins
  • %APPDATA%\Hex-Rays\IDA Pro\plugins
  • ~/.idapro/plugins

تشغيل ملحق IDA

تنزيل الأداة