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

oneiromancer v0.9.1

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

مشاركة

oneiromancer

build

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

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

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

الميزات

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

مقال

انظر أيضًا

التثبيت

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

cargo install oneiromancer

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

cargo add oneiromancer

البناء

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

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

الإعداد

  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] للحصول على أفضل النتائج، أرسل دالة واحدة في كل مرة ليتم تحليلها بواسطة نموذج LLM.

التوافق

تم اختباره مع Ollama 0.32.9 على:

  • Apple macOS Tahoe 26.5.2
  • Ubuntu Linux 24.04.2 LTS
  • Microsoft Windows 11 23H2

الاعتمادات

  • كريس بيلوز (@AverageBusinessUser) من Atredis Partners لمساهمته بنموذج LLM المضبوط بدقة aidapal <3

سجل التغييرات

المهام المتبقية

  • تحسين التعامل مع ملفات الإخراج عبر إدارة الإصدارات و/أو دليل إخراج.
  • تنفيذ ميزات أخرى من البرنامج الإضافي aidapal لـ IDA Pro المكتوب بلغة IDAPython (مثل السياق).
  • التكامل مع haruspex و idalib.
  • تنفيذ بروتوكول "تقرير الأقلية" (أي تقديم ثلاثة استعلامات واختيار أفضل الردود).
  • النظر في إعادة هيكلة إعادة تسمية المتغيرات لمنع تلف محتمل للكود.
  • التحقيق في حالات استخدام أخرى لنموذج aidapal وتنفيذ بنية معيارية لإضافة نماذج LLM مخصصة.

الفئات