.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.BINCD/DVD Disc Image (BIN/CUE)
5.MDMarkdown Document
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.DATProgram Data File (generic)
10.TMPTemporary File

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

.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