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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
IDA-Ghidra-bridge — خوادم TCP JSON bridge لـ IDA Pro وGhidra تكشف فك الترجمة، والمراجع المتقاطعة، والرموز، وجداول الدوال الافتراضية، وRTTI، وترقيع الذاكرة للنصوص البرمجية الخارجية وخطوط الأنابيب الآلية. | Kitploit
أدوات/GitHubGitHub/oscarsantanaarias/ida-ghidra-bridge
التحليل الثابتتحليل الكودتحليل الشفرة الديناميكي (DAST)الهندسة العكسيةالبرمجة النصية والأتمتةمصممي الأخطاءالأدوات والمكوناتتحليل الملفات الثنائيةالهندسة العكسية بمساعدة الذكاء الاصطناعي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
GitHuboscarsantanaarias/ida-ghidra-bridge

IDA-Ghidra-bridge

خوادم TCP JSON bridge لـ IDA Pro وGhidra تكشف فك الترجمة، والمراجع المتقاطعة، والرموز، وجداول الدوال الافتراضية، وRTTI، وترقيع الذاكرة للنصوص البرمجية الخارجية وخطوط الأنابيب الآلية.

عرض المستودع
413منذ 7 أياملم تتم المراجعة بعد
مشاركة

جسر IDA-Ghidra

خوادم جسر TCP JSON خفيفة الوزن لـ IDA Pro و Ghidra تُتيح سير عمل الهندسة العكسية عبر بروتوكول مقبس بسيط.

تسمح للأدوات الخارجية، ونصوص CLI، وأدوات Python المساعدة، وخطوط الأنابيب الآلية بالاستعلام عن فك التجميع، والإشارات المرجعية، والرموز، والجداول الافتراضية، وRTTI، والبنى، وذاكرة التصحيح دون تفاعل يدوي مع واجهة المستخدم الرسومية.


البنية ودورة الحياة

1. ربط المنافذ الديناميكي ودعم تعدد النسخ

عند العمل على مشاريع هندسة عكسية كبيرة مع فتح عدة ملفات ثنائية في نفس الوقت (مثل عميل لعبة، ومشغّل، ووكلاء DLL، والـ stubs في آنٍ واحد):

  • الخوادم لا تنهار إذا كان المنفذ مشغولاً بالفعل.
  • يبدأ الخادم بالمسح من BASE_PORT = 5073 ويجسّ المنافذ المتتالية تلقائياً (5073، 5074، 5075، 5076...) حتى يجد منفذاً متاحاً.
  • كل نافذة IDA أو Ghidra ترتبط بمنفذها الخاص بشكل مستقل دون تعارضات.

2. إعادة التحميل السريع وإعادة التنفيذ النظيفة

في IDA Pro، يبقى مفسّر Python حياً عبر عمليات تنفيذ نصوص متعددة:

  • يسجّل ID_Server.py مقبض الخادم قيد التشغيل في builtins._ida_bridge_prev.
  • إذا أعدت تشغيل أو تحميل النص في نفس نسخة IDA، فإنه يستدعي تلقائياً stop() على النسخة السابقة وينضم إلى خيطها (join(3.0))، محرراً المنفذ بشكل نظيف قبل بدء الخادم الجديد.
  • لن تحصل أبداً على Address already in use أو خيوط يتيمة من إعادة تشغيل النص.

3. الإيقاف الرشيق

  • عبر المقبس: أرسل QUIT أو STOP أو EXIT أو SHUTDOWN عبر الاتصال. يؤكد الخادم بـ {"ok": true, "shutdown": true} ويُغلق فوراً.
  • في IDA Pro: استدعِ ida_bridge_stop() مباشرة من واجهة IDA Python CLI، أو ببساطة أغلق IDA (تخرج الخيوط الخفية تلقائياً).
  • في Ghidra: انقر على زر الإلغاء الأحمر في مدير النصوص في Ghidra (يُفحص is_cancelled() كل ثانية عبر مهلة المقبس)، أو أرسل QUIT.

التثبيت والإعداد

IDA Pro

  1. افتح قاعدة البيانات المستهدفة (.idb / .i64) في IDA Pro.
  2. في واجهة IDA Python CLI (أو عبر File -> Script file... / Alt+F7)، نفّذ:
    import ID_Server
    
  3. يبدأ الخادم بالاستماع على 127.0.0.1:5073 (أو المنفذ المتاح التالي).
  4. لإيقاف الخادم يدوياً:
    ida_bridge_stop()
    

Ghidra

  1. افتح البرنامج المستهدف في Ghidra CodeBrowser.
  2. في مدير النصوص (Window -> Script Manager)، أضف المجلد الذي يحتوي على Ghidra_Server.py أو شغّله مباشرة في مفسّر Python.
  3. يرتبط الخادم بـ 127.0.0.1:5073 (أو المنفذ الحر التالي).

مرجع الأوامر الكامل (جميع الأوامر الـ 39)

الأوامر هي سلاسل نصية عادية محددة بأسطر جديدة تُرسل عبر TCP (127.0.0.1:<PORT>). يرد الخادم بكائن JSON (أو نص محدد بعلامات جدولة للأوامر القديمة).

1. التنقل والفحص

الأمرالصيغةالوصف
PINGPINGفحص الحالة. يُرجع "pong".
CURRENTCURRENTيُرجع عنوان المؤشر الحالي، واسم الدالة، والحجم، وتعليمات التجميع، والكود المفكوك.
NAMENAME <ea>يُرجع اسم الرمز/الدالة المعرّف عند <ea>.
FUNCFUNC <addr>يُرجع البيانات الوصفية الكاملة للدالة، ونقطة الدخول، والحجم، والتوقيع، والتجميع، وفك تجميع Hex-Rays/Ghidra.
DECOMPDECOMP <addr>اسم بديل لـ FUNC. يفك تجميع الدالة المستهدفة.
DISASMDISASM <ea> [n]يُرجع أسطر فك التجميع لـ [n] تعليمة بدءاً من <ea> (الافتراضي: 40).
FINDFIND <substr>بحث غير حساس لحالة الأحرف عبر جميع الرموز وأسماء الدوال المطابقة لـ <substr> (حتى 300 تطابق).
EXPORTEXPORT [path]يصدّر جميع الرموز غير الوهمية، والأسماء المشوّشة والمفكوكة إلى ملف نصي (الافتراضي: C:\Contexto\ida_names.txt).
HELPHELPيُرجع قائمة JSON بجميع الأوامر المتاحة التي يدعمها الخادم.
QUITQUITيُغلق اتصال العميل بشكل رشيق ويوقف مقبس خادم الجسر.

2. الإشارات المرجعية ورسم بياني للاستدعاءات

الأمرالصيغةالوصف
XREFXREF <addr>يسرد جميع الإشارات المرجعية الواردة (استدعاءات الكود، وقراءات/كتابات البيانات) التي تستهدف <addr>.
XFROMXFROM <addr>يسرد جميع الإشارات المرجعية الصادرة المنشأ من <addr>.
CALLERSCALLERS <addr>يرشّح الإشارات الواردة لإرجاع مواقع الاستدعاء فقط (بما في ذلك الاستدعاءات غير المباشرة المحلولة).
READERSREADERS <addr>يرشّح الإشارات الواردة لإرجاع التعليمات التي تقرأ من <addr> فقط.
WRITERSWRITERS <addr>يرشّح الإشارات الواردة لإرجاع التعليمات التي تكتب إلى <addr> فقط.
DECOMP_XREFDECOMP_XREF <addr>يفك تجميع كل دالة مستدعية لـ <addr> دفعة واحدة في طلب واحد.
IMPORTXREFIMPORTXREF <name>يحدد موقع جميع مواقع الاستدعاء في كامل الملف الثنائي لواجهة Windows/C API مستوردة (مثل IMPORTXREF WSASendTo).
TRACETRACE <addr>يتتبع تدفق التنفيذ والكتل الأساسية المحيطة بـ <addr>.

3. المؤشرات والذاكرة والبنى

الأمرالصيغةالوصف
READPTRREADPTR <addr> [count]يقرأ الذاكرة كسلاسل مؤشرات (32-بت أو 64-بت) ويصنّف كل هدف (func، string، vtable).
FINDPTRFINDPTR <addr>يمسح البيانات العامة والجداول للعثور على أي مؤشر يشير إلى <addr> (يجد الجداول الافتراضية، وجداول التوزيع).
STRUCTSTRUCT <addr> [n]يفرّغ الذاكرة المتجاورة استكشافياً مفسّراً الحقول كأعداد صحيحة، وأعداد عشرية، ومؤشرات، وسلاسل نصية.
DEFSTRUCTDEFSTRUCT <name> [size]ينشئ بنية مسماة جديدة في مكتبة أنواع قاعدة البيانات.
SETFIELDSETFIELD <struct> <off> <type> [name]يعرّف أو يعدّل حقل بنية عند <off> بالنوع <type> واسم حقل اختياري.
MKPTRSMKPTRS <addr> [count]يحوّل بايتات قاعدة البيانات الخام إلى مؤشرات مُنمّطة بشكل جماعي.
NEARSTRNEARSTR <addr>يجد الإشارات النصية الموجودة قريباً في أقسام الكود أو البيانات ضمن النطاق.

4. الجداول الافتراضية وRTTI

الأمرالصيغةالوصف
VTABLEVTABLE <funcaddr>يحدد الجداول الافتراضية التي تحتوي على <funcaddr>، بما في ذلك فتحات الطرق المجاورة.
VTDUMPVTDUMP <addr> [count]يفرّغ جدولاً افتراضياً كاملاً: يحل كل فتحة إلى اسم طريقتها، وإزاحتها، وفهرسها.
RTTIRTTI <addr|Name>يتنقل عبر بنى MSVC C++ RTTI (TypeDescriptor -> CompleteObjectLocator -> vftable) لحل التسلسلات الهرمية للفئات والفئات الأساسية.

5. مسح السلاسل النصية والبايتات

الأمرالصيغةالوصف
STRSTR <ascii>يبحث عن سلاسل ASCII عبر جميع المقاطع المحمّلة.
WSTRWSTR <utf16>يبحث عن سلاسل UTF-16 العريضة عبر جميع المقاطع المحمّلة.
BYTESBYTES <hex>يبحث عن تسلسلات بايتات الأكواد أو البيانات الخام (مثل BYTES 55 8B EC 83 EC).

6. تعديل قاعدة البيانات والتنميط

الأمرالصيغةالوصف
RENAME_FUNCRENAME_FUNC <addr> <name>يعيد تسمية الدالة عند <addr> إلى <name>.
RENAME_SYMBOLRENAME_SYMBOL <addr> <name>يعيد تسمية رمز بيانات عام أو متغير.
RENAME_LABELRENAME_LABEL <addr> <name>يعيد تسمية تسمية كود أو هدف قفز.
RENAME_LOCALRENAME_LOCAL <func> <old> <new>يعيد تسمية متغير محلي داخل عرض المفكك.
RETYPERETYPE <func> <var> <type>يعدّل نوع بيانات متغير أو معامل داخل المفكك (مثل RETYPE 00401000 a1 Player*).
SETCONVSETCONV <func> <convention>يضبط اصطلاح الاستدعاء (__cdecl، __stdcall، __fastcall، __thiscall).
MAKEFUNCMAKEFUNC <addr>يفرض إنشاء حدود دالة عند <addr>.
PATCHPATCH <addr> <hex>يكتب فوق البايتات مباشرة في قاعدة البيانات (مثل PATCH 00401234 90 90).
PCODEPCODE <addr>يفرّغ تمثيل Hex-Rays Microcode أو Ghidra P-Code الوسيط لتحليل المترجم العميق.

مثال عميل Python

import socket
import json

class BridgeClient:
    def __init__(self, host="127.0.0.1", port=5073):
        self.host = host
        self.port = port
تنزيل الأداة