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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
kong — أول مهندس عكسي وكيل في العالم. | Kitploit
أدوات/GitHubGitHub/amruth-sn/kong
التحليل الثابتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالتعلم والتعليمالهندسة العكسية بمساعدة الذكاء الاصطناعيتحليل البرامج الثابتة
1.1k1257منذ 5 أشهرتمت المراجعة من قبل Kitploit
GitHub
amruth-sn/kong

kong

أول مهندس عكسي وكيل في العالم.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

كونغ: المهندس العكسي الوكيلي

PyPI - Version X (formerly Twitter) URL

Kong: أول مهندس عكسي بالذكاء الاصطناعي في العالم

تنسيق النماذج اللغوية الكبيرة لهندسة الباينري العكسية

ما هو كونغ؟

معظم المهام تتبع علاقة خطية: كلما كانت المهمة أصعب، كلما استغرقت وقتًا أطول عادةً. الهندسة العكسية (وتحليل الباينري) هي مهمة تكون الصعوبة الفعلية فيها تافهة إلى حد ما، لكن وقت التنفيذ يمكن أن يصل إلى ساعات (وأيام!)، حتى بالنسبة لباينري يحتوي على بضع مئات من الدوال.

يقوم كونغ بأتمتة الطبقة الميكانيكية، باستخدام إطار عمل للهندسة العكسية من فئة وكالة الأمن القومي. يمكن لكونغ أن يأخذ باينري مبهم بالكامل ومجرد من الرموز ويشغل خط أنابيب تحليل كامل: فرز الدوال، بناء سياق رسم بياني للاستدعاءات، استعادة الأنواع والرموز من خلال فك الترجمة الموجه بواسطة النماذج اللغوية الكبيرة، وكتابة النتائج مرة أخرى في قاعدة بيانات برنامج جيدرا. الناتج هو باينري حيث أصبح FUN_00401a30 الآن parse_http_header، مع هياكل مستعادة وأسماء معاملات واتفاقيات استدعاء.

لماذا هذا موجود

تفقد الباينري المجردة من الرموز كل السياق الذي يجعل الكود قابلًا للقراءة: أسماء الدوال، معلومات الأنواع، أسماء المتغيرات، تخطيطات الهياكل. استعادة هذا السياق تشكل الجزء الأكبر من العمل في معظم مهام الهندسة العكسية، وهي إلى حد كبير مطابقة أنماط: التعرف على دوال المكتبة القياسية، استنتاج الأنواع من الاستخدام، نشر الأسماء عبر رسوم الاستدعاءات.

النماذج اللغوية الكبيرة جيدة في هذا النوع من مطابقة الأنماط. لكن توجيه نموذج لغوي كبير إلى إخراج مفكك الترجمة الخام وسؤاله "ماذا يفعل هذا؟" يعطي نتائج متوسطة. يفتقر النموذج إلى سياق الاستدعاء، معلومات المراجع المتقاطعة، والصورة الأوسع لكيفية تنظيم الباينري. بالإضافة إلى ذلك، تقدم معظم الباينري المبهمة تقنيات متطرفة لمنع الهندسة العكسية.

يحل كونغ هذه المشكلة عن طريق بناء نوافذ سياق غنية من تحليل برنامج جيدرا (رسوم الاستدعاءات، المراجع المتقاطعة، مراجع السلاسل، تدفق البيانات) قبل لمس النموذج اللغوي الكبير، ثم تنسيق التحليل بترتيب التبعية بحيث تستفيد كل دالة من أسماء الدوال التي تستدعيها والتي تم تسميتها مسبقًا. بالإضافة إلى ذلك، يقدم كونغ خط أنابيب إزالة إبهام وكيل من نوعه الأول من نوعه.

أثناء العمل

Kong: أول مهندس عكسي بالذكاء الاصطناعي في العالم
Kong: أول مهندس عكسي بالذكاء الاصطناعي في العالم

الميزات

  • خط أنابيب مستقل بالكامل: أمر واحد يشغل التحليل الكامل. الفرز، تحليل الدوال، التنظيف، التوليف الدلالي، والتصدير. لا حاجة للتدخل اليدوي.
  • تكامل جيدرا الداخلي: يشغل محرك تحليل جيدرا داخليًا عبر PyGhidra و JPype. لا خادم، لا RPC، لا حمل زائد للعمليات الفرعية. وصول مباشر إلى قاعدة بيانات البرنامج.
  • تحليل مرتب برسم الاستدعاءات: يتم تحليل الدوال من الأسفل إلى الأعلى من رسم الاستدعاءات. يتم تسمية الدوال الطرفية أولاً، بحيث تستفيد الدوال المستدعية من السياق الذي تم حله بالفعل في فك ترجمتها.
  • نوافذ سياق غنية: كل استعلام للنموذج اللغوي الكبير يتضمن فك ترجمة الدالة المستهدفة بالإضافة إلى المراجع المتقاطعة، مراجع السلاسل، توقيعات الدوال المستدعية/المستدعاة، والبيانات المجاورة؛ وليس مجرد إخراج مفكك الترجمة الخام في عزلة.
  • التوليف الدلالي: تمرير ما بعد التحليل الذي يوحد اصطلاحات التسمية عبر الباينري، ويصنع تعريفات الهياكل من أنماط الوصول إلى الحقول، ويحل التناقضات بين الدوال التي تم تحليلها بشكل مستقل.
  • مطابقة التوقيعات: يتم التعرف على دوال المكتبة القياسية المعروفة والدوال المشفرة بواسطة النمط قبل تحليل النموذج اللغوي الكبير، متجاوزًا الاستدلال المكلف للدوال ذات الهويات المعروفة.
  • التطبيع النحوي: يتم تنظيف إخراج مفكك الترجمة (استعادة المودولو، إعادة بناء الحرفيات السالبة، إزالة التعيينات الميتة) قبل الوصول إلى النموذج اللغوي الكبير، مما يقلل الضوضاء وهدر الرموز.
  • إزالة الإبهام الوكيلية: يستخدم كونغ خط أنابيب إزالة إبهام وكيلي يمكنه تحديد وإزالة تقنيات الإبهام (تسوية تدفق التحكم، تدفق التحكم المزيف، استبدال التعليمات، تشفير السلاسل، حماية الآلة الافتراضية، إلخ) من إخراج مفكك الترجمة.
  • إطار التقييم: أداة تقييم مدمجة تسجل مخرجات التحليل مقابل كود المصدر الحقيقي، لقياس دقة الرموز (Jaccard على مستوى الكلمة) ودقة الأنواع (تسجيل مكونات التوقيع).
  • دعم موفري نماذج لغوية كبيرة متعدد: يعمل مع Anthropic (Claude) و OpenAI (GPT-4o) مباشرة. معالج إعداد تفاعلي يهيئ المزودين والتوجيه الذكي يختار تلقائيًا أي مفتاح صالح.
  • تتبع التكاليف: يتتبع استخدام الرموز والتكاليف لكل نموذج عبر المزودين، مع تسعير واعي بالمزود.

البنى المدعومة

يعمل كونغ مع معظم الباينري القابلة للفك بواسطة جيدرا (في الوقت الحالي، المزيد قادم).

الثقة

CC++GoRust
x86عاليةعاليةمتوسطةمتوسطة
x86-64عاليةعاليةمتوسطةمتوسطة
ARM (32-bit)عاليةعاليةمتوسطةمنخفضة
AArch64عاليةعاليةمتوسطةمنخفضة
MIPSمتوسطةمتوسطةمنخفضةمنخفضة
PowerPCمتوسطةمتوسطةمنخفضةمنخفضة

عالية: يقوم كونغ بشكل موثوق بفك الترجمة، وإزالة الإبهام، واستعادة الأسماء والأنواع والبنية.

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

منخفضة: فك الترجمة به فجوات كبيرة وستبقى النتائج غير مكتملة أو صاخبة أو غير قابلة للقراءة.

ملاحظة: حجم الباينري يتناسب طرديًا مع عدد الدوال، تكلفة النموذج اللغوي الكبير، والوقت حتى الاكتمال. ومع ذلك، حجم الباينري يتناسب عكسيًا مع الثقة، لذا ضع هذا في الاعتبار عند تحليل باينري أكبر.

البنية

يستخدم كونغ خط أنابيب من خمس مراحل بقيادة مشرف ينسق الفرز والتحليل المتوازي والمعالجة اللاحقة:

root@kitploit:~
                    ┌──────────────────────────┐
                    │         الفرز            │
                    │  تعداد، تصنيف،            │
                    │  بناء رسم الاستدعاءات،    │
                    │  مطابقة التوقيعات        │
                    └──────────┬───────────────┘
                               │
                               ▼
              ┌────────────────┼────────────────┐
              │                │                │
              ▼                ▼                ▼
     ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
     │   تحليل      │ │   تحليل      │ │     ...      │
     │  (دوال طرفية)│ │ (الطبقة التالية)│ │              │
     └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
            │                │                │
            └────────┬───────┴────────────────┘
                     │
                     ▼
            ┌──────────────────────────┐
            │         التنظيف          │
            │  تطبيع، إزالة التكرار   │
            └──────────┬───────────────┘
                       │
                       ▼
            ┌──────────────────────────┐
            │         التوليف          │
            │  توحيد الأسماء، بناء     │
            │  الهياكل، إزالة الإبهام  │
            └──────────┬───────────────┘
                       │
                       ▼
            ┌──────────────────────────┐
            │         التصدير          │
            │  analysis.json +         │
            │  كتابة إلى جيدرا         │
            └──────────────────────────┘

كيف يعمل

الفرز يقوم بتعداد جميع الدوال في الباينري، ويصنفها حسب الحجم (تافهة / صغيرة / متوسطة / كبيرة)، ويبني رسم الاستدعاءات، ويكتشف لغة المصدر، ويشغل مطابقة التوقيعات ضد دوال المكتبة القياسية والدوال المشفرة المعروفة. يتم وضع علامة على الدوال المطابقة بالتوقيع على أنها محلولة ويتم تخطي تحليل النموذج اللغوي الكبير بالكامل.

التحليل يعالج الدوال بترتيب من الأسفل إلى الأعلى من رسم الاستدعاءات باستخدام قائمة انتظار عمل. لكل دالة، يبني كونغ نافذة سياق من قاعدة بيانات برنامج جيدرا — فك الترجمة، المراجع المتقاطعة، مراجع السلاسل، وتوقيعات الدوال المستدعاة التي تم تحليلها بالفعل — ويطبيع إخراج مفكك الترجمة، ويرسله إلى النموذج اللغوي الكبير لاستعادة الاسم والنوع والمعاملات. إذا تم اكتشاف إبهام في فك ترجمة دالة، يشغل كونغ تمرير إزالة إبهام وكيلي مع وصول رمزي للأدوات قبل إنتاج التحليل. تتم كتابة النتائج مرة أخرى إلى جيدرا فورًا بحيث ترى الدوال المستدعية اللاحقة الأسماء المحدثة.

التنظيف يوحد أنواع الهياكل من الاقتراحات المتراكمة أثناء التحليل ويعيد محاولة أي توقيعات دالة فشلت في التطبيق أثناء تمرير التحليل.

التوليف يأخذ نظرة شاملة عبر جميع الدوال التي تم تحليلها. استدعاء واحد للنموذج اللغوي الكبير يراجع الدوال الأكثر اتصالاً، ويوحد اصطلاحات التسمية، ويصنع تعريفات الهياكل من أنماط الوصول إلى الحقول، ويصقل الأسماء التي تبدو غير متسقة في السياق الأوسع.

التصدير يكتب analysis.json النهائي ويطبق جميع الأسماء والأنواع والتوقيعات المستعادة مرة أخرى إلى قاعدة بيانات برنامج جيدرا.

المكدس التقني

  • وقت التشغيل: Python 3.11+، مُدار باستخدام uv
  • تحليل الباينري: Ghidra عبر PyGhidra (داخلي، JPype)
  • النموذج اللغوي الكبير: Anthropic SDK (Claude) و OpenAI SDK (GPT-4o)
  • التحليل الرمزي: z3-solver
  • واجهة سطر الأوامر: Click
  • واجهة المستخدم النصية: Textual
  • العرض: Rich
  • البناء: hatchling
  • الاختبار: pytest

الإعداد

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

  • Python 3.11+ — (python.org أو مدير حزم النظام الخاص بك)
  • uv — مدير حزم Python (تثبيت uv)
  • Ghidra — إطار عمل الهندسة العكسية لوكالة الأمن القومي (تثبيت Ghidra)
  • JDK 21+ — مطلوب بواسطة Ghidra (Adoptium)
  • مفتاح API للنموذج اللغوي الكبير — واحد على الأقل من:
    • Anthropic (Claude)
    • OpenAI (GPT-4o)

بداية سريعة

root@kitploit:~
# 1. تثبيت كونغ
uv pip install kong-re

# 2. تعيين مفتاح (مفاتيح) API الخاص بك
export ANTHROPIC_API_KEY="sk-ant-..."
# و/أو
export OPENAI_API_KEY="sk-..."

# 3. تشغيل معالج الإعداد (المرة الأولى فقط)
kong setup

# 4. تحليل باينري
kong analyze ./path/to/stripped_binary

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

من المصدر

root@kitploit:~
git clone https://github.com/amruth-sn/kong.git
cd kong
uv sync
uv run kong setup
uv run kong analyze ./path/to/stripped_binary

متغيرات البيئة

المتغيرمطلوبالوصف
ANTHROPIC_API_KEYواحد على الأقلمفتاح API لـ Anthropic (Claude)
OPENAI_API_KEYواحد على الأقلمفتاح API لـ OpenAI (GPT-4o)
GHIDRA_INSTALL_DIRلاالمسار إلى تثبيت Ghidra (يتم الكشف تلقائيًا إذا لم يتم تعيينه)
JAVA_HOMEلاالمسار إلى JDK (يتم الكشف تلقائيًا إذا لم يتم تعيينه)
KONG_CONFIG_DIRلاتجاوز دليل التكوين (الافتراضي: ~/.config/kong)

الاستخدام

root@kitploit:~
# تشغيل معالج الإعداد
kong setup

# تحليل باينري مجرد من الرموز (يستخدم المزود الافتراضي المُهيأ)
kong analyze ./binary

# التحليل بمزود محدد
kong analyze ./binary --provider openai

# تجاوز النموذج
kong analyze ./binary --provider openai --model gpt-4o-mini

# عرض بيانات الباينري الوصفية دون تشغيل التحليل
kong info ./binary

# تقييم مخرجات التحليل مقابل كود المصدر الحقيقي
kong eval ./analysis.json ./source.c

المخرجات

تتم كتابة النتائج إلى دليل المخرجات (الافتراضي: ./kong_output_{binary_name}/):

root@kitploit:~
kong_output_{binary_name}/
├── analysis.json         # جميع أسماء الدوال والأنواع والمعاملات المستعادة
└── events.log            # تتبع تنفيذ خط الأنابيب

المعايير (Benchmarks)

أعاد كونغ بناء سلسلة القتل الكاملة لـ ثغرة XZ الخلفية (CVE-2024-3094) بشكل مستقل من liblzma.so.5.4.1 المجرد من الرموز — حيث حدد جميع دوال implant الخمسة الأساسية بثقة 90-95% في 15 دقيقة بتكلفة 6.63 دولار.

انظر BENCHMARKS.md لدراسة الحالة الكاملة وتعليمات إعادة الإنتاج.

هيكل المشروع

root@kitploit:~
kong/
├── __main__.py           # نقطة دخول CLI (Click)
├── config.py             # KongConfig، LLMProvider، LLMConfig
├── db.py                 # مخزن تكوين SQLite (~/.config/kong/)
├── banner.py             # شعار ASCII، مساعدات مفاتيح API
├── agent/
│   ├── supervisor.py     # منسق خط الأنابيب
│   ├── triage.py         # تعداد الدوال + التصنيف
│   ├── analyzer.py       # تحليل الدوال الموجه بواسطة النموذج اللغوي الكبير
│   ├── queue.py          # قائمة انتظار عمل BFS من رسم الاستدعاءات
│   ├── signatures.py     # مطابقة توقيعات الدوال المعروفة
│   ├── prompts.py        # الاستعلام النظامي + مخطط الإخراج
│   ├── events.py         # أنواع المراحل/الأحداث لتتبع خط الأنابيب
│   └── models.py         # فئة FunctionResult
├── ghidra/
│   ├── client.py         # GhidraClient الداخلي (PyGhidra/JPype)
│   ├── types.py          # FunctionInfo، BinaryInfo، XRef، إلخ.
│   └── environment.py    # الكشف التلقائي عن Ghidra/JDK
├── llm/
│   ├── client.py         # AnthropicClient
│   ├── openai_client.py  # OpenAIClient
│   ├── usage.py          # TokenUsage، تتبع التكاليف، سجل التسعير
│   └── limits.py         # حدود خاصة بالنموذج + محدد المعدل
├── normalizer/
│   └── syntactic.py      # تطبيع إخراج مفكك الترجمة
├── synthesis/
│   └── semantic.py       # توحيد الأسماء العالمي + توليف الهياكل
├── evals/
│   ├── harness.py        # استخراج الحقيقة الأساسية + التسجيل
│   └── metrics.py        # symbol_accuracy، type_accuracy
├── export/
│   └── source.py         # analysis.json + كتابة إلى Ghidra
├── signatures/
│   ├── stdlib.json       # توقيعات مكتبة C القياسية
│   └── crypto.json       # توقيعات الدوال المشفرة
└── tui/
    └── app.py            # واجهة المستخدم النصية Textual

الترخيص

APACHE

كونغ مرخص بموجب رخصة Apache 2.0. كونغ هو مشروع مجاني ومفتوح المصدر.

هذا الترخيص متوافق مع ترخيص Ghidra، ويسمح بالاستخدام التجاري.

المساهمة

نرحب بالمشكلات وطلبات الميزات عبر GitHub Issues.

أيضًا، لا تتردد في التواصل معي على X أو LinkedIn!

الشكر والتقدير

  • Ghidra
  • PyGhidra
  • JPype
  • Anthropic SDK
  • OpenAI SDK
  • Z3
  • Textual
  • Rich

شكر كبير لمشروع Shannon من KeygraphHQ، والذي قدم الإلهام لهذا المشروع. كان دافعي هو تكرار نفس نوع خط الأنابيب الذي يستخدمه Shannon لأداة اختبار الاختراق المستندة إلى الويب، وتكييفه لتحليل الباينري وفك الترجمة.


خاف من القرد.


Kong
كونغ: أول مهندس عكسي بالذكاء الاصطناعي في العالم

تنزيل الأداة