.ELF

Файл ELF

Executable and Linkable Format
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл ELF - это формат двоичных исполняемых файлов, используемый в Linux, Android, BSD и большинстве Unix-подобных систем; он является эквивалентом EXE в Windows. В Linux он запускается напрямую; homebrew-файлы .elf для PS2 запускаются в PCSX2, а .elf для GameCube/Wii - в Dolphin. ELF не работает нативно в Windows или macOS, и, как и любой исполняемый файл, он может содержать вредоносное ПО, поэтому запускайте файлы только из надежных источников.

Разработчик: Unix System Laboratories (AT&T); now an open System V / TIS standard Категория: Исполняемые файлы Открыть стандартное MIME: application/x-elf
ОТКРЫВАЕТСЯ НА Windows macOS Linux
Связанные: .APK · .EXE · .VBS · .JAR

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Aug 26, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла ELF?

Файлы с расширением .elf хранят двоичные данные, структурированные в соответствии со стандартом Executable and Linkable Format - форматом исполняемых и объектных файлов по умолчанию для Linux, большинства Unix-подобных систем и многих встраиваемых платформ. Формат был представлен в Unix System V Release 4 лабораторией Unix System Laboratories и позже утвержден как переносимая спецификация Tool Interface Standard (TIS).

Файлы ELF могут хранить следующие типы содержимого:

  • Исполняемые файлы приложений и инструментов, часто распространяемые как файл .bin
  • Скомпилированные объектные файлы, обычно имеющие расширение .o
  • Разделяемые библиотеки - файлы с расширением .so
  • Дампы памяти (core dumps), создаваемые после сбоя процесса

Формат построен на основе четко определенной двоичной структуры. Каждый файл .elf начинается с 4-байтовой магической последовательности 7F 45 4C 46 (0x7F, за которым следуют ASCII-символы ELF) со смещением 0, за которой следуют поля заголовка, определяющие целевую архитектуру, разрядность (32-бит или 64-бит) и порядок байтов (little-endian или big-endian). Две необязательные таблицы - таблица заголовков программы (program header table) и таблица заголовков разделов (section header table) - описывают, как сегменты должны загружаться во время выполнения и как разделы организованы для компоновки.

Хотя стандарт ELF разрабатывался с учетом систем Unix, он был быстро адаптирован другими платформами, включая игровые консоли, такие как PlayStation 2 и Wii, Android и многие встраиваемые среды. Стандартный MIME-тип - application/x-elf. Содержимое файла .elf не предназначено для чтения человеком; такие инструменты, как readelf и objdump (оба входят в состав GNU Binutils), позволяют проверять заголовки и дизассемблировать код без его выполнения.

Безопасность и защита

РИСК: HIGH

Как и любой исполняемый файл, ELF может содержать вредоносное ПО - ботнеты для Linux/IoT (например, варианты Mirai) поставляются в виде бинарных файлов ELF, и ELF запускается с вашими привилегиями. Запускайте файлы ELF только из доверенных источников; не используйте «chmod +x» для запуска случайных загрузок. Безопасно проверяйте неизвестные ELF с помощью readelf/objdump или сканируйте их на VirusTotal перед запуском. Консольные homebrew-файлы .elf менее рискованны (они работают внутри «песочницы» эмулятора), но все же берите их из проверенных источников.

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕExecutable and Linkable Format
РАЗРАБОТЧИКUnix System Laboratories (AT&T); now an open System V / TIS standardс 1989 (Unix System V Release 4); adopted as the TIS/System V ABI standard
MIME-ТИПapplication/x-elf
ТИПФормат двоичных исполняемых файлов / объектных файлов / разделяемых библиотек
СТАНДАРТОткрытый · без роялти
СВЯЗАННЫЕ.apk.exe.vbs.jar
MAGIC BYTES · СИГНАТУРА ФАЙЛА
СМЕЩЕНИЕ
00010203
HEX
7F454C46
ASCII
·ELF
Каждый файл ELF начинается с 4-байтового магического числа 7F 45 4C 46 (0x7F + «ELF») по смещению 0. Байт 4 (EI_CLASS) равен 1 для 32-бит / 2 для 64-бит; байт 5 (EI_DATA) равен 1 для little-endian / 2 для big-endian; байт 16 (e_type) сообщает, является ли файл исполняемым, перемещаемым объектом, разделяемым объектом (.so) или дампом памяти.

Программы, открывающие файлы ELF

Windows3 apps
PCSX2 (PlayStation 2 emulator) Открытый код Запуск homebrew/SDK .elf для PS2: File > Run ELF (или прямая загрузка .elf). Только для бинарных файлов ELF для PS2.
Dolphin (GameCube/Wii emulator) Открытый код Откройте homebrew .elf для GameCube/Wii в Dolphin для запуска. Только для бинарных файлов ELF для консолей Nintendo.
Ghidra Открытый код Импортируйте ELF для дизассемблирования и декомпиляции в читаемый код C - для обратной разработки и анализа.
macOS1 app
Ghidra Открытый код Импортируйте ELF для дизассемблирования и декомпиляции в читаемый код C - для обратной разработки и анализа.
Linux4 apps
Linux (run it) Встроенная Сделайте файл исполняемым и запустите: «chmod +x ./program && ./program». Исполняемый файл ELF И ЕСТЬ программа - здесь нет ничего для «просмотра». Он должен соответствовать архитектуре вашего процессора.
readelf (GNU binutils) Открытый код Проверка без запуска: «readelf -a file.elf» показывает заголовки, разделы, символы и целевую архитектуру.
objdump (GNU binutils) Открытый код Дизассемблирование: «objdump -d file.elf» показывает машинный код; «objdump -x» показывает все заголовки.
Ghidra Открытый код Импортируйте ELF для дизассемблирования и декомпиляции в читаемый код C - для обратной разработки и анализа.

Технические подробности

глубокая спецификация
Магическое число`7F 45 4C 46` (0x7F, за которым следует ASCII `ELF`) по смещению 0; присутствует в каждом валидном файле ELF
MIME-тип`application/x-elf`
Варианты разрядности32-бит (EI_CLASS = `01`) и 64-бит (EI_CLASS = `02`), закодированные по смещению 4 в заголовке ELF
Поле порядка байтовEI_DATA по смещению 5: `01` = little-endian, `02` = big-endian; определяется архитектурой целевого оборудования
Типы файлов (e_type)ET_EXEC (исполняемый), ET_REL (перемещаемый объект), ET_DYN (разделяемый объект или PIE), ET_CORE (дамп памяти)
Целевые архитектурыx86, x86-64, ARM, AArch64, MIPS, RISC-V, PowerPC, SPARC и многие другие, идентифицируемые по полю `e_machine` в заголовке ELF
Идентификатор OS/ABIБайт EI_OSABI по смещению 7 указывает целевой ABI: 0 = System V, 3 = Linux, 9 = FreeBSD, 12 = Solaris
Структура макетаЗаголовок ELF → необязательная таблица заголовков программы (сегменты загрузки среды выполнения) → данные → необязательная таблица заголовков разделов (разделы времени компоновки)
Основные именованные разделы`.text` (код), `.data` (инициализированные данные), `.bss` (неинициализированные данные), `.rodata` (константы), `.symtab` / `.dynsym` (символы), `.rel` / `.rela` (перемещения)
Динамическая компоновкаРазделяемые объекты разрешаются во время загрузки динамическим компоновщиком (`ld.so`); путь к необходимому интерпретатору хранится в заголовке программы `PT_INTERP`
Отладочная информацияОтладочные данные DWARF встраиваются в разделы ELF `.debug_*` и могут быть удалены из рабочих бинарных файлов командой `strip`
Позиционно-независимые исполняемые файлыБинарные файлы PIE имеют тип ET_DYN и поддерживают ASLR; ядро Linux рандомизирует их базовый адрес загрузки при каждом запуске
Основные инструменты проверки`readelf -a` (заголовки, символы, разделы) и `objdump -d` (дизассемблирование), оба предоставляются GNU Binutils
Выпущен1989 (Unix System V Release 4); adopted as the TIS/System V ABI standard
Открыть стандартноеДа · без роялти
Спецификацияrefspecs.linuxfoundation.org

Конвертации ELF

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами ELF. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня

Вопросов пока нет - станьте первым, кто спросит о файлах ELF.

Часто задаваемые вопросы

Как открыть файл ELF?
Это зависит от его назначения. Программу ELF для Linux запускают, а не открывают: «chmod +x ./file && ./file». Файл .elf для PlayStation 2 запускается в PCSX2; .elf для GameCube/Wii запускается в Dolphin. Чтобы заглянуть внутрь любого ELF без запуска, используйте readelf, objdump или Ghidra.
Можно ли запустить файл ELF в Windows?
Нативно - нет. ELF - это формат Unix/Linux, в то время как Windows использует EXE/PE. Используйте WSL (Windows Subsystem for Linux) или виртуальную машину Linux для запуска ELF-файлов Linux, либо эмулятор (PCSX2/Dolphin) для запуска консольных homebrew-файлов .elf.
Является ли файл ELF тем же самым, что и EXE?
Они являются эквивалентами в разных системах: ELF - это формат исполняемых файлов Linux/Unix, а EXE (PE) - формат Windows. Они не взаимозаменяемы и не могут быть конвертированы друг в друга.
Как запустить ELF в PCSX2 или Dolphin?
В PCSX2 используйте «Run ELF» (или загрузите .elf) для homebrew PS2; в Dolphin откройте .elf напрямую для homebrew GameCube/Wii. Вам понадобится соответствующий эмулятор для той консоли, для которой был собран ELF.
Как посмотреть, что внутри файла ELF?
Используйте «readelf -a file» для просмотра заголовков/разделов/символов, «objdump -d file» для дизассемблирования или импортируйте его в Ghidra для декомпиляции в код C. Это позволяет изучить файл без его выполнения.
Безопасно ли запускать файл ELF?
Только если он получен из надежного источника - бинарные файлы ELF могут быть вредоносными (ботнеты для Linux/IoT распространяются в формате ELF). Сначала проверьте неизвестные файлы с помощью readelf или VirusTotal. Консольные homebrew-файлы .elf запускаются в «песочнице» эмулятора и представляют меньший риск.

Ссылки

1Wikipedia - Executable and Linkable Formaten.wikipedia.org
2GNU Binutils - readelf / objdumpwww.gnu.org

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.M4AMPEG-4 Audio File
5.EXEWindows Executable (Portable Executable)
6.ICSiCalendar data file
7.DATProgram Data File (generic)
8.RPMSGRestricted Permission Message
9.JSONJavaScript Object Notation file
10.ODTOpenDocument Text

Похожие расширения

.APKAndroid Package
.EXEWindows Executable (Portable Executable)
.VBSVBScript file (Visual Basic Script)
.JARJava Archive
.EX4MetaTrader 4 Compiled Program (Expert Advisor / Indicator / Script)
.APPXMicrosoft Windows App Package (AppX)

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z