تخطَّ إلى المحتوى

Relyze - منفك تشفير ثنائي تفاعلي و Diff

Relyze - منفك تشفير ثنائي تفاعلي و Diff

Relyze هي منصة منفكة تشفير ثنائية ومقارنة تفاعلية وتجارية لبرامج أصلية، تدعم x86 و x64 و ARM32 و ARM64. يحلل ملفات PE/ELF إلى وظائف ورسوم بيانية تحكم التدفق، ويوفر مفكك لاستعادة pseudocode مستوى أعلى، ويتضمن محرك مقارنة ثنائية قوي لمقارنة نسختين من ملف ثنائي — لا يقدر بثمن لتحليل التصحيح وتتبع متغيرات البرامج الضارة. يمكن توسيعه من خلال إطار عمل المكون/البرامج النصية Ruby. إصدار مجاني غير تجاري متاح.

التثبيت

الخطوةملاحظات
Downloadاحصل على المثبت من الموقع الرسمي (Windows)
Editionsمجاني (غير تجاري) واحترافي
First runتكوين مفكك التشفير وخيارات التحليل
Pluginsالنصي Ruby متاح من الصندوق

سير عمل التحليل

الإجراءالوصف
فتح ملفتحليل ملف ثنائي PE أو ELF إلى وظائف/CFG
Functions viewتصفح الوظائف المكتشفة
Graph viewمخطط التحكم بالتدفق للدالة المحددة
Decompilerاستعادة pseudocode مثل C لدالة
Stringsقائمة النصوص المرجعية وxrefs الخاصة بهم
Imports/Exportsفحص جداول الاستيراد/التصدير
Cross-referencesاقفز إلى حيث يتم استخدام الدالة/البيانات

أساسيات الملاحة

المهمةالطريقة
إعادة تسمية رمزتحديد وإعادة تسمية (ينتشر إلى xrefs)
Commentشرح التعليمات/الوظائف
Follow a callانقر نقراً مزدوجاً على هدف النداء
Go to addressصندوق ملاحة العنوان
Switch viewبدل التفكيك / الرسم البياني / مفكك التشفير

المقارنة الثنائية

محرك diff من Relyze يطابق الوظائف بين ملفين ثنائيين ويصنفها على أنها متطابقة أو مغيرة أو مضافة أو محذوفة — سير العمل الأساسي لتحليل التصحيح الأمني أو مقارنة عينات البرامج الضارة.

المهمةالطريقة
Start a diffفتح ملف ثنائي A، ثم مقارنة مقابل ملف B
Matched functionsمراجعة الوظائف المقترنة عبر النسخات الثنائية
Changed functionsالتركيز على الوظائف التي يختلف الكود بها
Added/removedانظر ما أدخله التصحيح أو حذفه
Port annotationsأسماء حمل/تعليقات من نسخة إلى التالية

نمط تحليل التصحيح: قارن الملفات الثنائية قبل وبعد التصحيح، ركز على مجموعة صغيرة من الوظائف المتغيرة، ودرس ما أصلحه المورد لفهم الثغرة الأساسية.

برامج نصية Ruby

Relyze تعرض نموذج التحليل الخاص بها إلى Ruby للأتمتة.

# Conceptual: iterate functions and flag large ones
model = Relyze::Engine.instance.active_model
model.functions.each do |func|
  if func.instructions.length > 500
    puts "Large function at #{func.address.to_s(16)}"
  end
end
الاستخداممثال
Bulk renamingتطبيق الاستدلال الاسم عبر الوظائف
Custom analysisاكتشاف الأنماط (ثوابت التشفير والقطع)
Export dataتفريغ الوظائف/النصوص إلى ملف
Automate diffingنصي المقارنات عبر عينات متعددة

سير العمل المشتركة

الهدفالطريقة
فهم تصحيح أمنيقارن الملفات الثنائية قبل/بعد → ادرس الوظائف المتغيرة
Triage a native sampleStrings + imports → فك تجميع الوظائف المريبة
Track malware variantsقارن عينة جديدة مقابل عضو عائلة معروف
Recover logicاستخدم مفكك التشفير + إعادة التسمية/التعليق لإعادة بناء القصد

Relyze مقابل أجهزة فك التشفير الأخرى

الجانبRelyzeIDA ProGhidraBinary Ninja
Decompilerنعمنعم (Hex-Rays)نعمنعم
Binary diffبنيت فيإضافة (BinDiff)المكونات الإضافيةالمكونات الإضافية
ScriptingRubyPython/IDCJava/PythonPython
Costمجاني + Proتجاريمجانيتجاري

الموارد