
oneiromancer v0.9.1
مساعد هندسة عكسية يستخدم نموذج لغوي كبير (LLM) يعمل محليًا للمساعدة في تحليل الكود الزائف.
oneiromancer
"جزء كبير من العيوب في تطوير البرمجيات يعود إلى عدم فهم المبرمجين الكامل لجميع الحالات المحتملة التي قد تُنفَّذ فيها شيفرتهم." -- John Carmack
"هل يمكنه تشغيل Doom؟" -- https://canitrundoom.org/
Oneiromancer هو مساعد هندسة عكسية يستخدم نموذجًا لغويًا كبيرًا (LLM) يعمل محليًا وتم ضبطه بدقة على الشيفرة الزائفة الخاصة بـ Hex-Rays للمساعدة في تحليل الشيفرة. يمكنه تحليل دالة أو مقتطف شيفرة أصغر، وإرجاع وصف عالي المستوى لما تفعله الشيفرة، واسم مقترح للدالة، واقتراحات لإعادة تسمية المتغيرات، بناءً على نتائج التحليل.

الميزات
- دعم متعدد المنصات للنموذج اللغوي الكبير المضبوط بدقة aidapal المبني على
mistral-7b-instruct. - تكامل سهل مع مستخرج الشيفرة الزائفة haruspex وبيئات التطوير الشائعة.
- يتم طباعة وصف الشيفرة، والاسم المقترح للدالة، واقتراحات إعادة تسمية المتغيرات على الطرفية.
- يتم حفظ الشيفرة الزائفة المحسّنة لكل دالة تم تحليلها في ملف منفصل لسهولة الفحص.
- يمكن للحزم الخارجية استدعاء
analyze_codeأوanalyze_fileلتحليل الشيفرة الزائفة ثم معالجة نتائج التحليل.
المقال
انظر أيضًا
- https://www.atredis.com/blog/2024/6/3/how-to-train-your-large-language-model
- https://huggingface.co/AverageBusinessUser/aidapal
- https://github.com/atredispartners/aidapal
- https://plugins.hex-rays.com/atredispartners/aidapal
التثبيت
أسهل طريقة للحصول على أحدث إصدار هي عبر crates.io:
cargo install oneiromancer --locked
للتثبيت كمكتبة، شغّل الأمر التالي في دليل مشروعك:
cargo add oneiromancer
الترجمة
بدلاً من ذلك، يمكنك البناء من المصدر:
git clone --depth 1 https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release --locked
الإعداد
- نزّل وثبّت Ollama.
- نزّل الأوزان المضبوطة بدقة وملف modelfile الخاص بـ Ollama من Hugging Face:
wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal-8k.Q4_K_M.gguf wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal.modelfile - اضبط Ollama بتشغيل الأوامر التالية داخل الدليل الذي نزّلت فيه الملفات:
ollama create aidapal -f aidapal.modelfile ollama list
الاستخدام
- شغّل oneiromancer كما يلي:
export OLLAMA_BASEURL=custom_baseurl # if not set, the default will be used export OLLAMA_MODEL=custom_model # if not set, the default will be used oneiromancer <target_file>.c - اعثر على الشيفرة الزائفة المحسّنة في
<target_file>.out.c:vim <target_file>.out.c code <target_file>.out.c
[!TIP] للحصول على أفضل النتائج، أرسل دالة واحدة في كل مرة ليحللها النموذج اللغوي الكبير.
التوافق
تم الاختبار مع Ollama 0.32.9 على:
- Apple macOS Tahoe 26.5.2
- Ubuntu Linux 24.04.2 LTS
- Microsoft Windows 11 23H2
شكر وتقدير
- Chris Bellows (@AverageBusinessUser) في Atredis Partners على نموذجه اللغوي الكبير المضبوط بدقة
aidapal<3
سجل التغييرات
المهام المتبقية
- تحسين التعامل مع ملفات الإخراج عبر الإصدارات و/أو دليل إخراج.
- تنفيذ ميزات أخرى من إضافة IDA Pro الخاصة بـ IDAPython
aidapal(مثل السياق). - التكامل مع haruspex وidalib.
- تنفيذ بروتوكول "التقرير الأقلي" (أي إجراء ثلاث استعلامات واختيار أفضل الردود).
- التفكير في إعادة هيكلة إعادة تسمية المتغيرات لمنع احتمال إفساد الشيفرة.
- استكشاف حالات استخدام أخرى للنموذج اللغوي الكبير
aidapalوتنفيذ بنية معيارية لإضافة نماذج لغوية كبيرة مخصصة.