
مفتش ELF بسيط مكتوب بلغة C لفحص تخطيط الثنائيات بسرعة
ليست بديلاً عن readelf أو objdump. مجرد أداة سريعة ومركزة للأسئلة الشائعة في الهندسة العكسية:
كما تخدم كمثال مقروء لتحليل ELF بلغة C. تتعامل مع الملفات المجرّدة والملفات التي تحتوي على مقاطع فقط بشكل لائق.
(elfpeek:ls).dynsym و .symtab<elf.h>make
اختياري: ثبت حزمة libreadline-dev للحصول على سجل الأوامر في الواجهة التفاعلية.
./elfpeek
./elfpeek /bin/ls # عرض الترويسات والأقسام والرموز
./elfpeek /bin/ls 0x6760 # تحليل عنوان
| الأمر | الاختصار | الوصف |
|---|---|---|
open <path> | o | فتح ملف ELF |
close | إغلاق الملف الحالي | |
info | i | عرض ترويسة ELF |
sections | s | قائمة رؤوس الأقسام |
phdr | p | قائمة رؤوس البرامج |
entry | e | عرض نقطة الدخول |
symbols [dyn|sym] | sym | تفريغ جداول الرموز |
resolve <addr> | r | تحليل عنوان افتراضي |
dump <.sec|@off> [n] | d | تفريغ ست عشري (قسم أو إزاحة) |
help | ? | عرض المساعدة |
quit | q | خروج |
الأقسام:
.text, .plt).data, .bss).rodata)التفريغ الست عشري:
00)20-7E)01-1F)80-FF)يحتوي tests/ على ملفات ELF نموذجية:
| الملف | الوصف |
|---|---|
elf32_le.bin | 32 بت ترتيب صغير (i386) |
elf32_be.bin | 32 بت ترتيب كبير (PowerPC) |
elf64_be.bin | 64 بت ترتيب كبير (PowerPC64) |
elf64_le_pie.bin | ملف تنفيذي مستقل عن العنوان (PIE) |
elf64_le_static.bin | مرتبط بشكل ثابت |
elf64_le_dynsym_only.bin | مجرد، يحتوي فقط على dynsym |
elf64_le_so.bin | كائن مشترك |
elf64_le_segments_only.bin | لا توجد رؤوس أقسام |
relocs - عرض الترحيلاتgot/pltMIT