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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Gepetto — إضافة IDA التي تستعلم من النماذج اللغوية لتسريع الهندسة العكسية | Kitploit
أدوات/GitHubGitHub/justicerage/gepetto
تحليل الكودالهندسة العكسيةتحليل الملفات الثنائيةتعلم الآلةالهندسة العكسية بمساعدة الذكاء الاصطناعي
GitHubjusticerage/gepetto

Gepetto

إضافة IDA التي تستعلم من النماذج اللغوية لتسريع الهندسة العكسية

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Gepetto

Gepetto هو إضافة Python تستخدم نماذج لغوية كبيرة متنوعة لإعطاء معنى للدوال المفككة بواسطة IDA Pro (الإصدار 7.6 أو أحدث). يمكنها الاستفادة منها لشرح ما تفعله الدالة، وإعادة تسمية متغيراتها تلقائيًا. فيما يلي مثال بسيط على النتائج التي يمكنها تقديمها في ثوانٍ معدودة:

الإعداد

استخدام hcli (موصى به)

أسهل طريقة لتثبيت Gepetto هي استخدام أداة Hex-Rays CLI (hcli):

pip install ida-hcli
hcli plugin install gepetto

سيقوم هذا بتثبيت الإضافة تلقائيًا في دليل مستخدم IDA الخاص بك.

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

بدلاً من ذلك، يمكنك تثبيت الإضافة يدويًا:

  1. ضع هذا السكربت (gepetto.py، بالإضافة إلى مجلد gepetto/) في مجلد إضافات IDA الخاص بك ($IDAUSR/plugins).
  2. يعتمد موقع دليل الإضافات على نظامك:
    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS: ~/.idapro/plugins/
    • Linux: ~/.idapro/plugins/
  3. ثبّت الحزم المطلوبة في تثبيت Python الخاص بـ IDA. اكتشف أي مفسّر (interpreter) يستخدمه IDA من خلال التحقق من مفتاح التسجيل التالي: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (الافتراضي على Windows: %LOCALAPPDATA%\Programs\Python\Python39).
  4. باستخدام المفسّر المقابل، ما عليك سوى تشغيل:
    [/path/to/python] -m pip install -r requirements.txt
    

الإعدادات

يحتفظ Gepetto بإعداداته في دليل مستخدم IDA الخاص بك، بحيث تبقى محفوظة عبر ترقيات الإضافة:

  • Windows: %APPDATA%\Hex-Rays\IDA Pro\cfg\gepetto\config.ini
  • macOS / Linux: ~/.idapro/cfg/gepetto/config.ini

في المرة الأولى التي تعمل فيها الإضافة، تنسخ gepetto/config.ini إلى هناك وتخبرك بالمسار على وحدة التحكم. بعد ذلك، تكون النسخة المرفقة مع الإضافة مجرد قالب فقط — عدّل النسخة الموجودة في دليل المستخدم الخاص بك. اضبط GEPETTO_CONFIG_DIR لتجاوز الموقع بالكامل.

أضف مفاتيح API الخاصة بك إلى ذلك الملف، أو وفّرها عبر متغيرات البيئة المذكورة فيه. بالنسبة لـ OpenAI، يمكن إنشاء مفتاح على هذه الصفحة. يُرجى ملاحظة أن استعلامات API عادةً ليست مجانية (وإن لم تكن مكلفة جدًا) وستحتاج إلى إعداد طريقة دفع مع المزوّد المقابل.

النماذج المدعومة

  • Anthropic
    • claude-opus-4-7
    • claude-sonnet-4-6
    • claude-haiku-4-5
  • OpenAI
    • gpt-5
    • gpt-5-mini
    • gpt-5-nano
    • gpt-4-turbo
    • gpt-4o
    • o4-mini
    • gpt-4.1
    • o3
    • o3-pro
  • Google Gemini
    • gemini-2.0-flash
    • gemini-2.5-pro
    • gemini-2.5-flash
    • gemini-2.5-flash-lite-preview-06-17
  • Azure OpenAI
    • gpt-35-turbo
    • gpt-35-turbo-1106
    • gpt-35-turbo-16k
    • gpt-4-turbo
    • gpt-4-turbo-2024-0409-gs
  • Ollama
    • أي نموذج محلي مكشوف عبر Ollama (لن يظهر إذا لم يكن Ollama قيد التشغيل)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1 (لا يدعم إعادة تسمية المتغيرات)
  • Novita AI
    • deepseek/deepseek-r1
    • deepseek/deepseek-v3
    • meta-llama/llama-3.3-70b-instruct
    • meta-llama/llama-3.1-70b-instruct
    • meta-llama/llama-3.1-405b-instruct
  • Kluster.ai
    • deepseek-ai/DeepSeek-R1
    • deepseek-ai/DeepSeek-V3-0324
    • google/gemma-3-27b-it
    • klusterai/Meta-Llama-3.1-8B-Instruct-Turbo
    • klusterai/Meta-Llama-3.1-405B-Instruct-Turbo
    • klusterai/Meta-Llama-3.3-70B-Instruct-Turbo
    • meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
    • meta-llama/Llama-4-Scout-17B-16E-Instruct
    • Qwen/Qwen2.5-VL-7B-Instruct
  • LM Studio
    • أي نموذج محلي مكشوف عبر LM Studio (لن يظهر إذا لم يكن خادم LM Studio Developer قيد التشغيل)

إضافة مزوّدك الخاص

يحمّل Gepetto المزوّدين من ثلاثة أماكن، وكل منها يتجاوز الآخر عند تعارض اسم في القائمة: الوحدات المرفقة في gepetto/models/، ثم أي ملف .py في $IDAUSR/cfg/gepetto/providers/، ثم أي توزيعة مثبّتة تعلن عن نقطة دخول gepetto.providers. يتم الإعلان عن التجاوزات على وحدة التحكم، بحيث يمكنك استبدال مزوّد مدمج دون تفرّع الإضافة.

يستخدم المزوّد المُسقَط نفس العقد تمامًا الذي يستخدمه المزوّد المدمج. بالنسبة لنقطة نهاية متوافقة مع OpenAI، يكون الملف بأكمله:

import openai
import gepetto.config
import gepetto.models.model_manager
from gepetto.models.openai import GPT


class MyProvider(GPT):
    @staticmethod
    def get_menu_name() -> str:
        return "MyProvider"

    @staticmethod
    def supported_models():
        return ["my-model-v1"]

    @staticmethod
    def is_configured_properly() -> bool:
        return bool(gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"))

    def __init__(self, model):
        try:
            super().__init__(model)
        except ValueError:
            pass  # No OpenAI key needed for this provider.
        self.model = model
        self.client = openai.OpenAI(
            api_key=gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"),
            base_url="https://api.example.com/v1",
        )


gepetto.models.model_manager.register_model(MyProvider)

أضف قسم [MyProvider] مطابقًا إلى ملف config.ini الخاص بك وأعد تشغيل IDA: يتم تسجيل المزوّدين عند وقت التحميل، لذا يحتاج مفتاح جديد أو ملف جديد إلى إعادة تشغيل قبل أن يظهر في القائمة.

لتقديم أحدها كحزمة بدلًا من ذلك، اكشف عن الفئة أو عن دالة قابلة للاستدعاء register(register_model):

[project.entry-points."gepetto.providers"]
myprovider = "myprovider:MyProvider"

تُنفّذ الملفات الموجودة في providers/ شيفرة Python عشوائية عند بدء تشغيل IDA. وهذا يمثل نفس مستوى الثقة الممنوح لأي إضافة IDA، لكن لا تثبّت إلا المزوّدات التي تثق بها.

الاستخدام

بمجرد تثبيت الإضافة بشكل صحيح، يجب أن تكون قادرًا على استدعائها من قائمة السياق في نافذة الشيفرة الزائفة في IDA، كما هو موضح في لقطة الشاشة أدناه:

بدّل بين النماذج التي يدعمها Gepetto من قائمة Edit > Gepetto:

يوفر Gepetto أيضًا واجهة سطر أوامر (CLI) يمكنك استخدامها لطرح الأسئلة على LLM مباشرةً من IDA. تأكد من اختيار Gepetto في شريط الإدخال:

اختصارات لوحة المفاتيح

تتوفر اختصارات لوحة المفاتيح التالية:

  • اطلب من النموذج شرح الدالة: Ctrl + Alt + G
  • اطلب من النموذج إضافة تعليقات إلى الشيفرة: Ctrl + Alt + K
  • اطلب أسماءً أفضل لمتغيرات الدالة: Ctrl + Alt + R

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

القيود

  • تتطلب الإضافة الوصول إلى مُفكِّك HexRays لكي تعمل.
  • جميع نماذج LLM المدعومة هي نماذج عامة الغرض وقد تُخطئ في كثير من الأحيان! كن دائمًا ناقدًا للنتائج المُعادة!

الترجمات

يمكنك تغيير لغة Gepetto عن طريق تعديل الإعدادات المحلية (locale) في التكوين. على سبيل المثال، لاستخدام الإضافة باللغة الفرنسية، ما عليك سوى إضافة:

[Gepetto]
LANGUAGE = "fr_FR"

يجب أن يتطابق اللغة المختارة مع أسماء المجلدات في gepetto/locales. إذا لم تكن اللغة المطلوبة متاحة، يمكنك المساهمة في المشروع بإضافتها بنفسك! أنشئ مجلدًا جديدًا للغة المطلوبة (مثال: gepetto/locales/de_DE/LC_MESSAGES/)، وافتح طلب سحب جديدًا مع ملف .po المحدّث، والذي يمكنك إنشاؤه عن طريق نسخ وتحرير gepetto/locales/gepetto.pot (استبدل جميع الأسطر التي تبدأ بـ msgstr بالنسخة المترجمة).

شكر وتقدير

تنزيل الأداة