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

RetDec - محلل الأكواد الآلية المعاد توجيهها

RetDec - محلل الأكواد الآلية المعاد توجيهها

RetDec (محلل Retargetable من Avast) هو محلل أكواد آلية مفتوح المصدر الذي يحول الثنائيات المجمعة مرة أخرى إلى أكواد عالية المستوى قابلة للقراءة. “معاد التوجيه” هي الخاصية الرئيسية: بدلاً من الاستعداد للهندسة المعمارية الواحدة فإنه يرفع مجموعات تعليمات عديدة — x86 و ARM و MIPS و PIC32 و PowerPC — إلى LLVM IR ثم يحلل تلك التمثيل المشترك إلى C أو pseudocode شبيه بـ Python. يعمل بشكل مستقل ويتكامل مع IDA و Ghidra و radare2.

التثبيت

الطريقةكيف
بناء الإصدارتنزيل الحزمة المُنشاة مسبقاً من GitHub Releases
من المصدربناء CMake (انظر مستندات البناء في الريبو)
Dockerdocker run -v "$PWD:/dst" retdec/retdec
التحققretdec-decompiler --version

تحليل الأكواد الأساسي

الأمرالوصف
retdec-decompiler binary.exeتحليل إلى binary.exe.c
retdec-decompiler -o out.c binaryاختر مسار الإخراج
retdec-decompiler --backend-no-debug binaryإخراج أنظف
retdec-decompiler --cleanup binaryإزالة الملفات الوسيطة
retdec-decompiler --helpقائمة الخيارات الكاملة
# تحليل واقرأ النتيجة
retdec-decompiler suspicious.exe
less suspicious.exe.c

صيغ الإخراج

العلمينتج
(افتراضي)مصدر C
-f pypseudocode شبيه بـ Python
--backend-emit-cfgرسوم بيانية للتحكم في التدفق
--backend-emit-cgرسم بياني الاستدعاء
--config out.jsonإعدادات التحليل المنظمة/النتائج
LLVM IRإخراج .ll الوسيط أثناء التحليل

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

الهندسة المعماريةالصيغ
x86 / x86-64PE و ELF و Mach-O
ARM / ThumbELF و PE و raw
MIPSELF و raw
PIC32ELF و Intel HEX
PowerPCELF

تغطية الهندسة المعمارية الواسعة تجعل RetDec مفيد بشكل خاص للعمل المضمنة والثابتة حيث الثنائيات MIPS و PIC32 شائعة والمحللات الرئيسية توفر أقل.

الخيارات المفيدة

الخيارالتأثير
-a archفرض هندسة معمارية
-e endianضع جدول الحروف (little/big)
-m modeالوضع: bin وraw وll
--raw-entry-point ADDRنقطة البداية للثنائيات الخام
--raw-section-vma ADDRعنوان التحميل للكود الخام
--select-ranges A-Bتحليل فقط نطاق العناوين
--select-functions f1,f2تحليل وظائف معينة
# بقايا البرامج الثابتة الخام: أخبر RetDec كيفية تحميلها
retdec-decompiler -m raw -a mips -e big \
  --raw-entry-point 0x80000000 --raw-section-vma 0x80000000 firmware.bin

ميزات التحليل

الميزةتوفر
كشف صيغة الملفتحليل PE/ELF/Mach-O
كشف المترجم/packerبصمة سلسلة الأدوات
تحديد الدالة القائم على التوقيعتعرف على كود المكتبة المرتبط بشكل ثابت
إعادة بناء النوعاستعادة الهياكل والأنواع
استخدام معلومات التصحيحDWARF/PDB عند الحاجة

تحديد الدالة البحتة يهم الكثير في الممارسة: يتيح لك تخطي آلاف الأسطر من libc المرتبط بشكل ثابت والتركيز على منطق التطبيق الخاص به.

التكاملات

الأداةالملحق
IDA ProRetDec IDA plugin
GhidraRetDec Ghidra plugin
radare2r2retdec
APIتحليل برمجياً عبر CLI/config

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

الجانبRetDecGhidraHex-Rays (IDA)Binary Ninja
التكلفةمفتوح المصدر/مجانيمفتوح المصدر/مجانيتجاريتجاري
الهندسات المعماريةالكثيرة (بما فيها PIC32)الكثيرةالكثيرة (لكل ترخيص محلل)الكثيرة
تفاعليلا (دفعة)نعم (واجهة رسومية)نعمنعم
الأفضل للـتحليل الأكواد الدفعة والتلقائي المضمنةعمل RE تفاعليأعلى جودة إخراجواجهة برمجية حديثة/تجربة المستخدم

يكمل Ghidra للعمل التفاعلي — RetDec يسطع لخطوط الأنابيب الآلية والهندسات المعمارية غير العادية.

الموارد