
شنو كيدير 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 وعمليات الوكلاء المؤتمتة: البنية ولا الروتين اللي تعاود البناء ديالو يقدر يترفض قبل ما يتنشر ولا يتستعمل فخطوة من بعد.
واحد المسار العملي هو:
- استعمل
autoولاparseولاstringsولاdisasmباش تجمع الأدلة الأولية. - خلّي محلّل ولا نموذج يصيغ ادّعاءات محدّدة ومحصورة.
- خزّن الادّعاءات المرتابطة فملف JSON.
- شغّل
verifyوراجع كل نتيجةREFUTEDولاINCONCLUSIVE. - عدّل إعادة البناء وعاود العملية حتى تكون الادّعاءات المدعومة مبنية على أدلة ملاحظة.
أوامر إضافية للتحليل
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.
