العودة إلى التحديثات
New releaseAug 13, 2026

oneiromancer v0.9.1

مساعد هندسة عكسية يستخدم نموذج لغوي كبير (LLM) يعمل محليًا للمساعدة في تحليل الكود الزائف.

مشاركة

oneiromancer

build

"جزء كبير من العيوب في تطوير البرمجيات يعود إلى عدم فهم المبرمجين الكامل لجميع الحالات المحتملة التي قد تُنفَّذ فيها شيفرتهم." -- John Carmack

"هل يمكنه تشغيل Doom؟" -- https://canitrundoom.org/

Oneiromancer هو مساعد هندسة عكسية يستخدم نموذجًا لغويًا كبيرًا (LLM) يعمل محليًا وتم ضبطه بدقة على الشيفرة الزائفة الخاصة بـ Hex-Rays للمساعدة في تحليل الشيفرة. يمكنه تحليل دالة أو مقتطف شيفرة أصغر، وإرجاع وصف عالي المستوى لما تفعله الشيفرة، واسم مقترح للدالة، واقتراحات لإعادة تسمية المتغيرات، بناءً على نتائج التحليل.

الميزات

  • دعم متعدد المنصات للنموذج اللغوي الكبير المضبوط بدقة aidapal المبني على mistral-7b-instruct.
  • تكامل سهل مع مستخرج الشيفرة الزائفة haruspex وبيئات التطوير الشائعة.
  • يتم طباعة وصف الشيفرة، والاسم المقترح للدالة، واقتراحات إعادة تسمية المتغيرات على الطرفية.
  • يتم حفظ الشيفرة الزائفة المحسّنة لكل دالة تم تحليلها في ملف منفصل لسهولة الفحص.
  • يمكن للحزم الخارجية استدعاء analyze_code أو analyze_file لتحليل الشيفرة الزائفة ثم معالجة نتائج التحليل.

المقال

انظر أيضًا

التثبيت

أسهل طريقة للحصول على أحدث إصدار هي عبر crates.io:

cargo install oneiromancer --locked

للتثبيت كمكتبة، شغّل الأمر التالي في دليل مشروعك:

cargo add oneiromancer

الترجمة

بدلاً من ذلك، يمكنك البناء من المصدر:

git clone --depth 1 https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release --locked

الإعداد

  1. نزّل وثبّت Ollama.
  2. نزّل الأوزان المضبوطة بدقة وملف 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
    
  3. اضبط Ollama بتشغيل الأوامر التالية داخل الدليل الذي نزّلت فيه الملفات:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

الاستخدام

  1. شغّل 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
    
  2. اعثر على الشيفرة الزائفة المحسّنة في <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 وتنفيذ بنية معيارية لإضافة نماذج لغوية كبيرة مخصصة.

الفئات