دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

تحقّق من تحليل الملفات الثنائية بمساعدة الذكاء الاصطناعي مع Reverify

تعلّم كيفاش تثبّت Reverify، وتفحص الملفات الثنائية، وتتحقّق من الادعاءات البنيوية والسلوكية، وتؤتمت الفحوصات، وتوفّر أدوات هندسة عكسية حتمية لوكلاء الذكاء الاصطناعي عبر MCP.

تحقّق من تحليل الملفات الثنائية بمساعدة الذكاء الاصطناعي مع Reverify

شنو كيدير Reverify

Reverify هو طاقم أدوات للهندسة العكسية بمساعدة الذكاء الاصطناعي، متصمّم باش ينقص من الهلوسات أثناء تحليل الملفات الثنائية. عوض ما يتيق فإعادة البناء ديال نموذج لغوي، Reverify كيتعامل معاها كفرضية وكيقارنها مع الملف الثنائي الحقيقي.

سير العمل بسيط: النموذج كيقدّم الاقتراح، والأدوات الحتمية كتحقّق منو. Reverify يقدر يفكّك البايتات، يقلب على الأنماط، يحلّل صيغ الملفات التنفيذية، يستخرج السلاسل النصية، يحاكي الكود، ويفحص صيغ البيانات المرسلة عبر الشبكة. كل ادعاء تم التحقق منو كياخذ نتيجة من بين ثلاثة: VERIFIED أو REFUTED أو INCONCLUSIVE، ومعاها الأدلة اللي تلاحظات.

استعمل Reverify غير فالهندسة العكسية المصرّح بها، بحال تحليل البرمجيات الخبيثة، تحديات CTF، أبحاث قابلية التشغيل البيني، والبرامج اللي كتملكها أو عندك الإذن تفحصها.

الميزات الرئيسية

  • التحقق الحتمي: كيتحكم فصحة الادعاءات انطلاقاً من البايتات اللي تلاحظات فالملف الثنائي المستهدف، عوض قبول شرح مولّد بالذكاء الاصطناعي.
  • تحليل الملفات التنفيذية: فحص ملفات PE وELF وMach-O، بما فيها المعمارية، ونقطة الدخول، والأقسام، والاستيرادات، والتصديرات حيثما كان ذلك مدعوماً.
  • تفكيك الكود والمحاكاة: تحليل كود x86 وx64 وARM وARM64، مع إمكانيات كتختلف حسب المحركات النشطة.
  • تحليل الأنماط والسلاسل النصية: البحث على أنماط AOB باستعمال البدائل العامة ?? واستخراج سلاسل ASCII أو UTF-16LE مع الإزاحات ديالها.
  • فحص البروتوكولات: فك ترميز بيانات Protobuf وTLV بلا ما تكون محتاج لمخطط.
  • أدوات الهندسة العكسية: توليد خطافات Frida، وإنشاء تفريغات hex مصطفّة، وإنتاج فروقات أو ترقيعات ثنائية.
  • الربط مع الوكلاء: تشغيل Reverify كخادم Model Context Protocol لأدوات بحال Claude Code وCursor.
  • بديل خالص بـ Python: الحزمة الأساسية خدامة بلا Ghidra ولا محركات تحليل أصلية إلزامية.

التثبيت والإعداد

تثبيت النواة الخالصة بـ Python

ثبّت واجهة CLI وخادم MCP من PyPI:

pip install reverify

هاد الشي كيوفّر النواة الخالصة بـ Python، وهي أسهل طريقة باش تبدا.

تثبيت المحركات الاختيارية المتقدمة

باش تحصل على تحليل محسّن للصيغ، والتفكيك، والمحاكاة، ثبّت الإضافة الكاملة:

pip install "reverify[full]"

التثبيت الكامل كيخلّي Reverify يستعمل Capstone فالتفكيك، وUnicorn لمحاكاة المعالج، وLIEF لتحليل PE وELF وMach-O. إلا ما كانتش هاد الحزم متوفرة، Reverify كيرجع للتنفيذ ديالو الخالص بـ Python.

تحقق من المحركات النشطة:

reverify backends

التشغيل مباشرة من نسخة المستودع

يمكن حتى تستعمل المستودع بلا ما تثبّت الحزمة:

python reverify/cli.py auto sample.bin --json
python reverify/cli.py parse-pe sample.exe --json
python reverify/cli.py disasm 90505831C0C3 --arch x86_64

الفحص الأولي للملفات الثنائية

بدا بالأمر auto باش يتعرّف على صيغة الملف والمعمارية، ويفحص الأقسام، ويبلّغ على السلاسل النصية المهمة:

reverify auto sample.bin --json

الخيار --json مفيد ملي كيكون سكريبت آخر، أو مهمة CI، أو وكيل ذكاء اصطناعي محتاج يستهلك النتيجة برمجياً.

إلى بغيتي تحليل مركز للملفات التنفيذية، استعمل parse مع ملفات PE أو ELF أو Mach-O:

reverify parse sample.bin --json

بالنسبة لملف تنفيذي ديال Windows، محلّل PE المخصص يقدر يفحص ترويسات PE32 أو PE32+، والاستيرادات، والتصديرات:

reverify parse-pe sample.exe --json

تفكيك البايتات الخام

الأمر disasm يقدر يفك ترميز كود الآلة المكتوب بالصيغة السداسية عشرية. هاد المثال كيحلل سلسلة قصيرة ديال x86-64:

reverify disasm 90505831C0C3 --arch x86_64

التفكيك مفيد باش تتحقق واش سلسلة التعليمات المقترحة مطابقة للبايتات. Reverify يقدر حتى يفكك الكود من قسم داخل ملف ثنائي، وبهذا كتقدر تربط الادعاءات بمحتوى الملف عوض تفسير معزول مولّد من النموذج.

استعمال حلقة التحقق

ادعاء Reverify هو فرضية منظمة على ملف ثنائي. الأمر verify كيقيّم الادعاء وكيرجع الحالة ديالو مع الأدلة اللي لاحظها طاقم الأدوات.

التحقق من سلسلة تعليمات

الادعاء التالي كيتحقق واش البايتات الموجودة فالإزاحة 4096 كتتفكك إلى مقدمة دالة كتبدأ بـ push وmov وsub:

reverify verify sample.bin --claim '{
  "kind": "instructions",
  "offset": 4096,
  "mnemonics": ["push", "mov", "sub"],
  "note": "function prologue"
}'

Reverify ما كيعيدش غير التفسير المقترح. كيقرا البايتات المعنية وكيحللها، ومن بعد كيبلّغ واش سلسلة أسماء التعليمات المطلوبة مدعومة.

التحقق من نتيجة محاكاة

تقدر حتى تختبر ادعاء سلوكي من خلال تنفيذ كود الآلة فالمحاكي والتحقق من السجلات الناتجة:

reverify verify - --claim '{
  "kind": "emulate_result",
  "code": "b805000000b90300000001c8c3",
  "arch": "x86",
  "expect_registers": {"eax": 8}
}'

هاد الشي كيتحقق باللي الروتين المقدم كيخلّي eax مساوي لـ 8. هاد التحقق أقوى من قبول وصف النموذج لشنو باين أن التعليمات كتحسب.

أنواع الادعاءات المتاحة

Reverify كيدعم أنواع الادعاءات التالية:

  • bytes_at كيتحقّق من البايتات فموقع محدّد.
  • pattern_present كيتحقّق واش كاين نمط ديال البايتات.
  • string_present كيقلب على سلسلة نصية فالثنائي.
  • instructions كيتحقّق من تسلسل تعليمات مقترح.
  • emulate_result كيتحقّق من نتائج السجلات المتوقعة من بعد المحاكاة.
  • protobuf_field كيتحقّق من ادّعاء مرتبط بحقل Protobuf.
  • pe_import كيتحقّق من ادّعاء مرتبط باستيراد PE.

التحقّق بالدُفعات وحواجز CI

فحالات التحقيق الكبيرة، حطّ ادّعاءات متعدّدة فملف JSON وتحقّق منهم كاملين دفعة وحدة:

reverify verify sample.bin --claims-file claims.json

الـCLI كيخرج بحالة غير صفرية إلا ترفض شي ادّعاء. هاد السلوك كيخلّيه مناسب لخطوط CI وعمليات الوكلاء المؤتمتة: البنية ولا الروتين اللي تعاود البناء ديالو يقدر يترفض قبل ما يتنشر ولا يتستعمل فخطوة من بعد.

واحد المسار العملي هو:

  1. استعمل auto ولا parse ولا strings ولا disasm باش تجمع الأدلة الأولية.
  2. خلّي محلّل ولا نموذج يصيغ ادّعاءات محدّدة ومحصورة.
  3. خزّن الادّعاءات المرتابطة فملف JSON.
  4. شغّل verify وراجع كل نتيجة REFUTED ولا INCONCLUSIVE.
  5. عدّل إعادة البناء وعاود العملية حتى تكون الادّعاءات المدعومة مبنية على أدلة ملاحظة.

أوامر إضافية للتحليل

Reverify فيه بزاف ديال الأوامر المركّزة اللي تقدر تعاون فعملية التحقّق:

  • البحث على الأنماط: استعمل pattern-scan للبحث على AOB فيه بايتات مطابقة بالضبط وwildcards ديال ??.
  • استخراج السلاسل النصية: استعمل strings باش تلقى السلاسل ASCII وUTF-16LE وتحتافظ بالإزاحات ديالها.
  • المحاكاة الدقيقة: استعمل emulate باش تفحص سلوك سجلات المعالج والمكدّس.
  • تفكيك تنسيق الأسلاك: استعمل decode-protobuf ولا decode-tlv لتحليل البيانات بلا مخطط.
  • التكامل مع Frida: استعمل gen-hook باش تولّد سكريبت ديال الاعتراض.
  • الفحص الخام: استعمل hexdump لعرض مُحاذى للبيانات الثنائية.
  • تحليل التغييرات: استعمل diff-patch للفروقات الثنائية وتوليد الرقع.
  • تدقيق الحدود: استعمل audit-boundary لفحوصات دفاعية لحدود نظام الملفات وSSRF.

إكمال الحلقة مع إعادة البناء

الأمر reconstruct كيطبّق النهج ديال Reverify القائم على الحلقة المغلقة: النموذج كيقدّم ادّعاءات، والأدوات الحتمية كتحكم فيها، والعملية كتعاد حتى توصل لنتيجة مبنية على الأدلة. هاد الشي حسن من أنك تطلب من نموذج يبني بنية ولا خوارزمية كاملة وتعتبر أول جواب ديالو موثوق.

باش تحصل على نتائج موثوقة، خلّي الادّعاءات صغيرة وقابلة للاختبار. ادّعاء على بايتات دقيقة، ولا تسلسل قصير ديال التعليمات، ولا دالة مستوردة، ولا نتيجة ديال سجل، أسهل فالتحقّق والمراجعة من حكاية عامة على ثنائي كامل.

ربط Reverify بوكلاء الذكاء الاصطناعي

شغّل خادم MCP من نسخة مستودع محلية بهاد الأمر:

python reverify/mcp_server.py

من بعد تقدر تهيّأ عميل متوافق مع MCP بحال Claude Code ولا Cursor باش يشغّل الخادم. الوكيل يقدر يستعمل مباشرة أدوات Reverify ديال التحليل، والتفكيك، والبحث، والتحقّق.

أداة MCP اللي سميتها re_verify_claim كتوفّر نفس حلقة التحقّق للوكلاء. بهاد الطريقة يقدر الوكيل يبعث فرضية، ويتلقى VERIFIED ولا REFUTED ولا INCONCLUSIVE، ويعاود يراجع التحليل ديالو قبل ما يقدّم الخلاصة.

نصائح متقدّمة

  • فحص الواجهات الخلفية النشيطة أولاً: شغّل reverify backends قبل التحليل باش تعرف واش Capstone وUnicorn وLIEF متوفرين.
  • فضّل إخراج JSON: استعمل --json ملي غادي تحلّل النتائج سكريبتات ولا وكلاء ولا أنظمة CI.
  • فرّق بين الملاحظة والتفسير: سجّل الإزاحات، والبايتات، والتعليمات المفكّكة، وحالات السجلات قبل ما تكتب شرح بمستوى أعلى.
  • تعامل مع النتائج غير الحاسمة بصدق: النتيجة INCONCLUSIVE ماشي تحقّق. جمع أدلة أكثر ولا ضيّق الادّعاء.
  • جمع التأكيدات المرتابطة فدفعة: حطّ الفحوصات البنيوية والسلوكية فملف ادّعاءات باش يقدر افتراض مرفوض واحد يوقّف إعادة بناء مؤتمتة.
  • استعمل المحاكاة للادّعاءات السلوكية: إلا كان الادّعاء كيقول شنو كتحسب شي روتينة، تحقّق من حالة السجل المتوقعة وما تعتمدش غير على التفكيك.
  • استعمل البديل النقي ديال Python للتوافق: بدا بالحزمة الأساسية، ومن بعد نصّب reverify[full] ملي تحتاج محركات أصلية ناضجة.

الخلاصة

Reverify كيخلّي الهندسة العكسية بمساعدة الذكاء الاصطناعي أكثر قابلية للدفاع عليها، حيث كيفرض على الادّعاءات المهمة تدوز ففحوصات حتمية ضد الملف الثنائي. الـCLI ديالو كيدعم الفرز السريع، والتحليل، والتفكيك، والبحث على الأنماط، والمحاكاة، والتحقّق بالدُفعات، بينما خادم MCP ديالو كيعطي للوكلاء ديال الذكاء الاصطناعي الولوج لنفس المسار المبني على الأدلة. والنتيجة هي تحليل مبني على البايتات الملاحظة، ماشي على التخمين الواثق.

Reverify مرخّص برخصة MIT ومتوفر فـPyPI.