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

Reko - محلل ثنائي مفتوح المصدر

Reko - محلل ثنائي مفتوح المصدر

Reko هو محلل ثنائي مفتوح المصدر مكتوب في C# يحول الأكواد الآلية إلى C-like مصدر. خاصيته البارزة هي عرض الهندسة المعمارية خاصة للمنصات القديمة والغريبة: إلى جانب x86 و x64 و ARM يتعامل مع 6502 و Z80 و 68000 و VAX و PDP-11 و SPARC و PowerPC والكثير غيره. هذا يجعلها الخيار العملي للحوسبة الرجعية والثابتة القديمة والأهداف المضمنة حيث الأدوات السائدة لا توجد على الإطلاق. يوفر محرر واجهة رسومية ومحلل سطر أوامر.

التثبيت

الطريقةكيف
الإصدارتنزيل من GitHub Releases (Windows/Linux/macOS)
واجهة رسوميةتشغيل reko (WPF/Avalonia UI)
CLIdecompile / reko-cli binary
من المصدربناء حل .NET
التحققreko-cli --version

تحليل سطر الأوامر

الأمرالوصف
reko-cli binary.exeتحليل بكشف التنسيق التلقائي
reko-cli --arch x86-protected-32 raw.binفرض هندسة معمارية
reko-cli --base 0x8000 raw.binاضبط عنوان التحميل
reko-cli --loader raw ...معاملة الإدخال كصورة خام
reko-cli -o outdir binaryدليل الإخراج
# تحليل ROM Z80 خام محمل في 0x0000
reko-cli --loader raw --arch z80 --base 0x0000 game.rom

القطع الأثرية للإخراج

الملفيحتوي على
*.cC المحللة المصدر
*.hتصريحات النوع/الهيكل المستعادة
*.disقائمة التفكيك
*.rekoملف المشروع (أعد التحميل في واجهة رسومية)
رسم بياني الاستدعاءهيكل البرنامج

الهندسات المعمارية المدعومة (تحديد)

حديثقديم / مضمنة
x86 / x86-646502 / 65C02
ARM / AArch64Z80 / 8080
MIPS68000 (m68k)
PowerPCVAX و PDP-11
SPARC8051 و AVR
RISC-VCray و Alpha وأكثر

هذا هو السبب في الوصول إلى Reko: عندما يكون الثنائي من وحدة تحكم الثمانينات أو جهاز تحكم صناعي أو جهاز mainframe فإن محللي الأكواد الأخرى ببساطة لا تحمله.

خط أنابيب التحليل

المرحلةتفعل
التحميلتحليل الحاوية (PE/ELF/raw/إلخ.)
المسحاكتشف الأكواد مقابل البيانات وابحث عن الإجراءات
إعادة الكتابةرفع التعليمات إلى تمثيل وسيط
التحليلتدفق البيانات واستدلال النوع واستعادة الهيكل
البناءإعادة بناء الحلقات والشروط
الإخراجانبعث C والرؤوس

يساعد فهم المراحل عندما يكون الإخراج سيء — عادة الإصلاح هو إرشاد مرحلة المسح بنقاط البداية الصحيحة وعناوين التحميل.

العمل في واجهة رسومية

المهمةكيف
فتح ثنائيملف → فتح واختر محمل/arch إذا لزم الأمر
إجراءات التصفحجزء قائمة الإجراءات
اعرض C محللةجزء الأكواد لكل إجراء
إعادة تسمية/إعادة الكتابةعدل الرموز لتحسين الإخراج
إعادة تشغيل التحليلأعد التحليل بعد التعليقات
حفظ المشروع.reko يحافظ على التعليقات

التكرار — التعليق وإعادة التحليل والقراءة مرة أخرى — هو كيفية الحصول على الإخراج القابل للقراءة حقاً من ثنائي مجرد.

تحسين جودة الإخراج

المشكلةالإصلاح
الأكواد تُرى كبياناتعلامة نقاط البداية / بدايات الإجراءات
عنوان التحميل خاطئضبط --base بشكل صحيح
إخراج مشوهتأكيد الهندسة المعمارية وترتيب البايتات
لا شيء له اسمأعد تسمية الإجراءات/المتغيرات أثناء التعلم
التوقيعات المفقودةوفر ملفات بيانات التوقيع/النوع

Reko مقابل محللي الأكواد الأخرى

الجانبRekoGhidraRetDec
الهندسات المعمارية القديمةاستثنائيجيدمعتدل
واجهة رسومية تفاعليةنعمنعم (أغنى)لا
دفعة قابلة للنص البرمجينعم (CLI)نعمنعم
اللغةC#JavaC++
الأفضل للـأهداف Retro/غريبةRE تفاعلي عامخطوط أنابيب الدفعات والمضمنة

استخدم Ghidra للعمل التفاعلي السائد و RetDec لخطوط الأنابيب الدفعة; Reko تحقق مكانتها عندما الهندسة المعمارية غير عادية.

الموارد