
r2ai v1.4.4
إضافة Radare2 للذكاء الاصطناعي تستخدم نماذج لغوية كبيرة (LLMs) محلية أو بعيدة لتفكيك الكود، وشرح الدوال، واكتشاف الثغرات، وإعادة التسمية، والهندسة العكسية عبر السكربتات.
R2AI - هندسة عكسية معززة بالـ LLM لـ radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
المكونات
يحتوي هذا المستودع على إضافتين لـ radare2:
- r2ai - إضافة AI أصلية لـ radare2
- decai - إضافة r2js مع تركيز خاص على فك الترجمة
إذا كنت تبحث عن استخدام radare2 مع وكلاء آخرين عبر MCP:
- r2mcp - mcp radare2 الرسمي
- r2copilot - mcp مع التركيز على CTF r2copilot
إذا كنت تبحث عن وكيل مستقل موجه لـ radare2:
- r2agent - أتمتة مهام سير عمل radare2 عبر وكلاء مستقلين. r2agent
الميزات
- تكوين أدوار مختلفة وتخصيص التوجيهات
- قابل للبرمجة النصية عبر r2pipe باستخدام أمر r2ai
- تفاعلي مع وضع repl ووضع الدُفعات من سطر الأوامر أو موجه r2
- دعم الوضع التلقائي (ReAct) لحل المهام عبر استدعاء الدوال
- استخدام نماذج لغوية محلية وبعيدة (ollama, openai, grok, anthropic, ..)
- دعم RAG لملفات markdown والكود والملفات النصية باستخدام قاعدة بيانات المتجهات الأصلية الخاصة به
- تضمين مخرجات أمر r2 والإجابة عن الأسئلة المتعلقة بالبيانات المعطاة
توجيهات يحددها المستخدم
[0x00000000]> r2ai -q
explain: Explain the current function -
devices: Find and explain devices used -
libs: Group imports by Libraries -
varnames: Better variable names -
autoname: Automatically suggest a better name for this function -
vulns: Find vulnerabilities or bugs in the current function -
signature: Suggest an improved function signature -
dlopen: List libraries loaded with dlopen - Some libraries are loaded
decompile: Augmented decompilation based on LLM -
[0x00000000]>
التثبيت
الطريقة الموصى بها لتثبيت أي من مكونات r2ai هي عبر r2pm:
$ r2pm -Uci r2ai
$ r2pm -Uci decai
استخدام r2ai
- يضيف أمر r2ai إلى واجهة radare2:
r2 -qc r2ai - يمكنك أيضًا تشغيل الغلاف (wrapper) من $PATH:
r2pm -r r2ai
ضع مفاتيح API الخاصة بك في متغيرات البيئة أو استخدم ملف الإعدادات:
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
أو عدّل ملف مفاتيح API ~/.config/r2ai/apikeys.txt ثم نفّذ:
$ r2ai -K
حفظ الإعدادات
يمكنك تخصيص وحفظ إعداداتك باستخدام ملف الإعدادات الافتراضي لنظام التشغيل لديك (مثل ~/.radare2rc على لينكس).
على سبيل المثال، الإعداد التالي يضبط Claude 3.7 افتراضيًا، مع حد أقصى لتوكنات الإخراج يبلغ 64000.
$ r2ai -E
ثم يمكنك كتابة الأوامر التي تريد تشغيلها عند تحميل إضافة r2ai:
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
قراءة إضافية
- يوجد فصل في r2book الرسمي
- تدوينة Cryptax حول lmstudio+gptoss
- تحليل برمجيات خبيثة باستخدام r2ai بقلم Cryptax وDaniel Nakov
- تحليل برمجية الفدية Linux/Trigona وبوت نت Linux/Prometei وW32/SkyAI باستخدام r2ai