Gepetto هو مكون إضافي Python يستخدم نماذج لغوية كبيرة مختلفة لتوفير معنى للوظائف التي تم فكها بواسطة IDA Pro (≥ 7.4). يمكن أن يستفيد منها لشرح ما تفعله الوظيفة ، وإعادة تسمية متغيراتها تلقائيًا. فيما يلي مثال بسيط على النتائج التي يمكن أن توفرها في ثوانٍ فقط:
ما عليك سوى إسقاط هذا البرنامج النصي ( gepetto.py
، وكذلك gepetto/
Folder) في مجلد IDA Plugins الخاص بك ( $IDAUSR/plugins
). بشكل افتراضي ، على Windows ، يجب أن يكون هذا %AppData%Hex-RaysIDA Proplugins
(قد تحتاج إلى إنشائها).
ستحتاج إلى إضافة الحزم المطلوبة إلى تثبيت Python من IDA حتى يعمل البرنامج النصي. ابحث عن المترجم IDA الذي يستخدمه عن طريق التحقق من مفتاح التسجيل التالي: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA
(الافتراضي على Windows: %LOCALAPPDATA%ProgramsPythonPython39
). أخيرًا ، مع المترجم المقابل ، ما عليك سوى تشغيل:
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini
) وإضافة مفاتيح API الخاصة بك. بالنسبة لـ Openai ، يمكن العثور عليها في هذه الصفحة. يرجى ملاحظة أن استعلامات API عادةً لا تكون مجانية (على الرغم من أنها ليست باهظة الثمن) وستحتاج إلى إعداد طريقة دفع مع المزود المقابل.
لا ينبغي أن تكون إضافة الدعم للنماذج الإضافية أمرًا صعبًا للغاية ، شريطة أن تعرض أي مزود تفكر فيه في واجهة برمجة تطبيقات مشابهة لـ Openai's. انظر إلى مجلد gepetto/models
للإلهام ، أو افتح مشكلة إذا لم تتمكن من معرفة ذلك.
بمجرد تثبيت المكون الإضافي بشكل صحيح ، يجب أن تكون قادرًا على استدعاءه من قائمة سياق نافذة رمز IDA ، كما هو موضح في لقطة الشاشة أدناه:
التبديل بين النماذج التي تدعمها Gepetto من قائمة التحرير> Gepetto:
يوفر Gepetto أيضًا واجهة CLI التي يمكنك استخدامها لطرح الأسئلة إلى LLM مباشرة من IDA. تأكد من تحديد Gepetto
في شريط الإدخال:
تتوفر مفاتيح hotshes التالية:
Ctrl
+ Alt
+ G
Ctrl
+ Alt
+ R
يوضح الاختبار الأولي أن طلب أسماء أفضل يعمل بشكل أفضل إذا طلبت شرحًا للوظيفة أولاً - أفترض لأن النموذج يستخدم تعليقه الخاص لتقديم اقتراحات أكثر دقة. هناك عنصر من العشوائية في ردود الذكاء الاصطناعى. إذا لم يناسبك الاستجابة الأولية لسبب ما ، فيمكنك دائمًا تشغيل الأمر مرة أخرى.
يمكنك تغيير لغة Gepetto عن طريق تحرير اللغة في التكوين. على سبيل المثال ، لاستخدام المكون الإضافي باللغة الفرنسية ، يمكنك ببساطة إضافة:
[Gepetto]
LANGUAGE = " fr_FR "
يجب أن تتطابق اللغة المختارة مع أسماء المجلدات في gepetto/locales
. إذا لم تكن اللغة المطلوبة متوفرة ، فيمكنك المساهمة في المشروع عن طريق إضافته بنفسك! قم بإنشاء مجلد جديد للموقع المطلوب (على سبيل المثال: gepetto/locales/de_DE/LC_MESSAGES/
) ، وافتح طلب سحب جديد مع ملف .po
المحدث ، والذي يمكنك إنشاؤه عن طريق نسخ وتحرير gepetto/locales/gepetto.pot
(استبدال جميع الخطوط التي تبدأ مع msgstr
مع الإصدار المحلي).