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 sample | Strings + imports → فك تجميع الوظائف المريبة |
| Track malware variants | قارن عينة جديدة مقابل عضو عائلة معروف |
| Recover logic | استخدم مفكك التشفير + إعادة التسمية/التعليق لإعادة بناء القصد |
Relyze مقابل أجهزة فك التشفير الأخرى
| الجانب | Relyze | IDA Pro | Ghidra | Binary Ninja |
|---|
| Decompiler | نعم | نعم (Hex-Rays) | نعم | نعم |
| Binary diff | بنيت في | إضافة (BinDiff) | المكونات الإضافية | المكونات الإضافية |
| Scripting | Ruby | Python/IDC | Java/Python | Python |
| Cost | مجاني + Pro | تجاري | مجاني | تجاري |
الموارد