Elf что это за программа

Содержание

Чем открыть elf файл

Файлы формата ELF открываются специальными программами. Существует 3 типа форматов ELF, каждый из которых открывается разными программами. Чтобы открыть нужный тип формата, изучите описания файлов и скачайте одну из предложенных программ.

Чем открыть файл в формате ELF

Формат исполняемого файла, применяемого Nintendo Wii — консольную видео-игр, выпущенной компанией Nintendo в ноябре 2006 года. Может переноситься на ПК и воспроизводиться на Dolphin Emulator.

Примечание: «доморощенные» программы Wii, созданные пользователями, можно также сохранять в файлах ELF. Их можно переносить на консоль Wii с помощью SD-карты.

Чем открыть файл в формате ELF (Nintendo Wii Game File)

Системный файл, создаваемый в формате Executable and Linkable Format (ELF), который прежде был известен как «Extensible Linking Format». Может хранить исполняемые программы,дамп памяти и библиотеки коллективного доступа.

Формат ELF является стандартным форматом файла, применяемым на многих основанных на Unix системах.

Основы работы с программой ELF WIZARD

Чем открыть файл в формате ELF (Executable and Linkable Format File)

elfdump objdump readelf

Файл, применяемый игровыми системами PlayStation, PlayStation 2, PlayStation 3 и PlayStation Portable (PSP). Включает в себя большую часть содержимого с диска видео-игры. Включает в себя данные игры, код объекта, библиотеки общего доступа и другие данные.

Файлы ELF иногда редактируются для изменения процесса игры PlayStation.

Примечание: файлы PlayStation ELF используют формат «Executable and Linkable Format», который является стандартным форматом файла, применяемым на системах Unix.

Чем открыть файл в формате ELF (PlayStation Executable File)

Тип файла1 Nintendo Wii Game File

Разработчик Nintendo
Категория Исполняемые файлы
Формат Binary

Binary

This file is saved in a binary format, which requires a specific program to read its contents.

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

Исполняемый формат файла, используемый Nintendo Wii, консоль видеоигр, выпущенная Nintendo в ноябре 2006 года; может передаваться на ПК и воспроизводиться на эмуляторе Dolphin.

ПРИМЕЧАНИЕ. «Домашние» программы Wii, созданные пользователями, также могут быть сохранены в виде файлов ELF. Они могут быть переданы на консоль Wii через SD-карту.

Linux Macintosh

Тип файла2 Executable and Linkable Format File

Binary

This file is saved in a binary format, which requires a specific program to read its contents.

.ELF вариант № 2

Системный файл, созданный в исполняемом и связующем формате (ELF), ранее известный как «Расширяемый формат связывания»; может хранить исполняемые программы, дампы памяти и разделяемые библиотеки.

Формат ELF — это стандартный формат файлов, используемый во многих системах на базе Unix.

aelf(ELF) обзор краткий и полезный. Азиаты инвестируют в это. Азиатский конкуретн ATOM, DOT.

Тип файла3 PlayStation Executable File

Разработчик Sony
Категория Игровые файлы
Формат Binary

Binary

This file is saved in a binary format, which requires a specific program to read its contents.

.ELF вариант № 3

Файл, используемый игровыми системами PlayStation, PlayStation 2, PlayStation 3 и PlayStation Portable (PSP); содержит большую часть содержимого с диска видеоигры; включает в себя данные игры, объектный код, разделяемые библиотеки и другие данные.

Файлы ELF иногда редактируются, чтобы изменить игровой процесс PlayStation.

ПРИМЕЧАНИЕ. В файлах PlayStation ELF используется «Исполняемый и связанный формат», который является стандартным файловым форматом, используемым в системах Unix.

Linux readelf elfdump objdump

О ELF файлах

Наша цель — помочь вам понять за что отвечает файл с расширением * .elf и как его открыть.

Тип файла PlayStation Executable File, описания программ для Mac, Windows, Linux, Android и iOS, перечисленные на этой странице, были индивидуально исследованы и проверены командой FileExt. Мы стремимся к 100-процентной точности и публикуем только информацию о форматах файлов, которые мы тестировали и проверяли.

ELF Executable Format

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

ELF — это расширение файла, обычно связанное с файлами ELF Executable Format. Спецификация ELF Executable Format была создана Unix System Laboratories. Формат файла ELF совместим с программным обеспечением, которое может быть установлено на системной платформе , Linux, Windows.

ELF файл относится к категории Исполняемые файлы так же, как #NUMEXTENSIONS # других расширений файлов, перечисленных в нашей базе данных. Самая популярная программа для обработки ELF файлов — Dolphin, но пользователи могут выбирать из 15 различных программ, которые поддерживают этот формат файлов. На официальном сайте разработчика Dolphin Team вы найдете не только подробную информацию о программном обеспечении Dolphin, но также о ELF и других поддерживаемых форматах файлов.

Программы, которые поддерживают ELF расширение файла

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов ELF, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. ELF файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.

Программы, обслуживающие файл ELF

Как открыть файл ELF?

Причин, по которым у вас возникают проблемы с открытием файлов ELF в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением ELF, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.

Шаг 1. Получить Dolphin

Основная и наиболее частая причина, препятствующая открытию пользователями файлов ELF, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы ELF. Наиболее очевидным решением является загрузка и установка Dolphin или одной из перечисленных программ: NetBSD, NeutrinoSX2, PS2emu. Полный список программ, сгруппированных по операционным системам, можно найти выше. Самый безопасный способ загрузки Dolphin установлен — для этого зайдите на сайт разработчика (Dolphin Team) и загрузите программное обеспечение, используя предоставленные ссылки.

Читайте также:
Программа авс что это

Шаг 2. Проверьте версию Dolphin и обновите при необходимости

Если у вас уже установлен Dolphin в ваших системах и файлы ELF по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Причиной того, что Dolphin не может обрабатывать файлы с ELF, может быть то, что программное обеспечение устарело. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Dolphin.

Шаг 3. Назначьте Dolphin для ELF файлов

Если у вас установлена последняя версия Dolphin и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления ELF на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Процедура изменения программы по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле ELF и выберите « Открыть с помощью опцией».
  • Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
  • Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку Dolphin. Подтвердите, Всегда использовать это приложение для открытия ELF файлы и нажав кнопку OK .

Процедура изменения программы по умолчанию в Mac OS

  • В раскрывающемся меню, нажав на файл с расширением ELF, выберите Информация
  • Откройте раздел Открыть с помощью, щелкнув его название
  • Выберите подходящее программное обеспечение и сохраните настройки, нажав Изменить все
  • Наконец, это изменение будет применено ко всем файлам с расширением ELF должно появиться сообщение. Нажмите кнопку Вперед , чтобы подтвердить свой выбор.

Шаг 4. Убедитесь, что файл ELF заполнен и не содержит ошибок

Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным ELF файлом. Проблемы с открытием файла могут возникнуть по разным причинам.

1. ELF может быть заражен вредоносным ПО — обязательно проверьте его антивирусом.

Если случится так, что ELF инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если сканер обнаружил, что файл ELF небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.

2. Убедитесь, что структура файла ELF не повреждена

Если вы получили проблемный файл ELF от третьего лица, попросите его предоставить вам еще одну копию. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. При загрузке файла с расширением ELF из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.

3. Убедитесь, что у вас есть соответствующие права доступа

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл ELF Executable Format.

4. Проверьте, может ли ваша система обрабатывать Dolphin

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

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом ELF Executable Format. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами ELF, влияющими на более старые версии данного программного обеспечения.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла ELF мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле ELF.

Источник: dj-sensor.ru

Описание файла ELF

Файлы ELF связаны с три типом (-ами) файлов, и их можно просматривать с помощью Dolphin (emulator), разработанного Dolphin Emulator Project. В целом, этот формат связан с три существующим (-и) прикладным (-и) программным (-и) средством (-ами). Обычно они имеют формат Nintendo Wii Game File. В большинстве случаев эти файлы относятся к Executable Files, но они также могут относиться к System Files или Game Files.

Расширение файла ELF можно просмотреть в Windows, Mac и Linux. Они поддерживаются в основном настольными компьютерами и некоторыми мобильными платформами. Рейтинг популярности основного типа файла ELF составляет «Низкий», что означает, что эти файлы встречаются на стандартных настольных комьютерах или мобильных устройствах достаточно редко.

Для получения дополнительной информации о файлах ELF и связанных с ними прикладных программных средствах, см. информацию ниже. Кроме того, далее также представлено основное руководство по устранению неполадок, которое позволит вам решить проблемы, возникающие во время открытия файлов ELF.

Источник: www.solvusoft.com

Расширение файла ELF

ELF значок файла

Файлы с расширением .ELF хранят системные данные, в основном для систем на базе Unix и Unix. ELF — это двоичный исполняемый файл. Файлы ELF реализуют стандарт Executable and Linkable Format, также известный как Extensible Linking Format. Стандарт был публично выпущен вместе со спецификацией двоичного интерфейса приложения (ABI).

Файлы ELF могут хранить такие данные, как:

  • Исполняемые файлы для приложений и инструментов, обычно с расширением. Расширение BIN,
  • Скомпилированные объекты, обычно с расширением .O,
  • Общие объекты (библиотеки) — файлы с расширением. Расширение SO,
  • Дампы памяти

Хотя стандарт ELF был разработан с учетом систем Unix, он был быстро адаптирован к другим системам, таким как игровые консоли (например, Wii, PlayStation, PowerPC) и некоторым мобильным системам. Содержимое ELF не читается человеком, и такой файл не следует открывать с помощью текстовых редакторов или других программ и приложений, которые не поддерживают этот формат.

Программы, которые поддерживают ELF расширение файла

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов ELF, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. ELF файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.

Программы, обслуживающие файл ELF

Windows

Windows

Читайте также:
Mi пульт xiaomi что это за программа и нужна

Linux

Linux

Updated: 10/18/2022

Как открыть файл ELF?

Причин, по которым у вас возникают проблемы с открытием файлов ELF в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением ELF, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.

Шаг 1. Получить Dolphin

Install software to open ELF file

Основная и наиболее частая причина, препятствующая открытию пользователями файлов ELF, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы ELF. Наиболее очевидным решением является загрузка и установка Dolphin или одной из перечисленных программ: NetBSD, NeutrinoSX2, PS2emu. Полный список программ, сгруппированных по операционным системам, можно найти выше. Самый безопасный способ загрузки Dolphin установлен — для этого зайдите на сайт разработчика (Dolphin Team) и загрузите программное обеспечение, используя предоставленные ссылки.

Шаг 2. Проверьте версию Dolphin и обновите при необходимости

Update software that support file extension ELF

Если у вас уже установлен Dolphin в ваших системах и файлы ELF по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Причиной того, что Dolphin не может обрабатывать файлы с ELF, может быть то, что программное обеспечение устарело. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Dolphin.

Шаг 3. Назначьте Dolphin для ELF файлов

Если у вас установлена последняя версия Dolphin и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления ELF на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Associate software with ELF file on Windows

Процедура изменения программы по умолчанию в Windows

Associate software with ELF file on Mac

  • Щелкните правой кнопкой мыши на файле ELF и выберите « Открыть с помощью опцией».
  • Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
  • Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку Dolphin. Подтвердите, Всегда использовать это приложение для открытия ELF файлы и нажав кнопку OK .

Процедура изменения программы по умолчанию в Mac OS

  • В раскрывающемся меню, нажав на файл с расширением ELF, выберите Информация
  • Откройте раздел Открыть с помощью, щелкнув его название
  • Выберите подходящее программное обеспечение и сохраните настройки, нажав Изменить все
  • Наконец, это изменение будет применено ко всем файлам с расширением ELF должно появиться сообщение. Нажмите кнопку Вперед , чтобы подтвердить свой выбор.

Шаг 4. Убедитесь, что файл ELF заполнен и не содержит ошибок

Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным ELF файлом. Проблемы с открытием файла могут возникнуть по разным причинам.

Check ELF file for viruses

1. ELF может быть заражен вредоносным ПО — обязательно проверьте его антивирусом.

Если случится так, что ELF инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если сканер обнаружил, что файл ELF небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.

2. Убедитесь, что структура файла ELF не повреждена

Если вы получили проблемный файл ELF от третьего лица, попросите его предоставить вам еще одну копию. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. При загрузке файла с расширением ELF из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.

3. Убедитесь, что у вас есть соответствующие права доступа

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл ELF Executable Format.

4. Проверьте, может ли ваша система обрабатывать Dolphin

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

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом ELF Executable Format. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами ELF, влияющими на более старые версии данного программного обеспечения.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла ELF мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле ELF.

Источник: www.file-extension.info

Анатомия эльфов. Разбираемся с внутренним устройством ELF-файлов

Ес­ли в мире Windows исполня­емые фай­лы пред­став­лены в фор­мате Portable Executable (PE), то в Linux эта роль отве­дена фай­лам в фор­мате Executable and Linkable Format (ELF). Сегод­ня мы заг­лянем внутрь таких фай­лов, нем­ного поис­сле­дуем их струк­туру и узна­ем, как они устро­ены.

Сра­зу отме­чу, что в отли­чие от Windows в Linux от рас­ширения фай­ла не зависит прак­тичес­ки ничего (за сов­сем неболь­шим исклю­чени­ем). Тип и фор­мат фай­ла опре­деля­ется его внут­ренним содер­жимым и наличи­ем тех или иных атри­бутов, поэто­му фай­лы в фор­мате Executable and Linkable Format могут иметь любое рас­ширение.

Что нам понадобится

Во­обще, мож­но позави­довать людям, оби­тающим в мире Linux, — как пра­вило, в сис­теме «из короб­ки» идет боль­шое чис­ло ути­лит и прог­рамм, которые в Windows необ­ходимо где‑то искать и уста­нав­ливать допол­нитель­но, да еще и не всег­да бес­плат­но. В нашем слу­чае для ана­лиза ELF-фай­лов в Linux при­сутс­тву­ет впол­не сос­тоятель­ный арсе­нал встро­енных средств и ути­лит:

  • readelf — с помощью этой ути­литы мож­но прак­тичес­ки пол­ностью прос­матри­вать все пота­енные мес­та ELF-фай­лов в удо­бочи­таемом виде;
  • hexdump — прос­той прос­мот­рщик фай­лов в шес­тнад­цатерич­ном пред­став­лении (конеч­но, до hiew из мира Windows ему далеко, но, во‑пер­вых, он при­сутс­тву­ет в сис­теме по умол­чанию, а во‑вто­рых, дела­ет это совер­шенно бес­плат­но);
  • strings — с помощью этой извес­тной ути­литы мож­но уви­деть име­на всех импорти­руемых (или экспор­тиру­емых) фун­кций, а так­же биб­лиотек, из которых эти фун­кции импорти­рова­ны, наз­вания сек­ций и еще мно­го чего инте­рес­ного;
  • ldd — поз­воля­ет выводить име­на раз­деля­емых биб­лиотек, из которых импорти­руют­ся те или иные фун­кции, исполь­зуемые иссле­дуемой прог­раммой;
  • nm — может показы­вать таб­лицу имен из сос­тава отла­доч­ной информа­ции, которая добав­ляет­ся в ELF-фай­лы при их ком­пиляции (эта отла­доч­ная информа­ция с помощью коман­ды strip может быть уда­лена из фай­ла, и в этом слу­чае ути­лита nm ничем не поможет);
  • objdump — спо­соб­на вывес­ти информа­цию и содер­жимое всех эле­мен­тов иссле­дуемо­го фай­ла, в том чис­ле и в дизас­сем­бли­рован­ном виде.
Читайте также:
Tenorshare reboot что это за программа

Часть перечис­ленно­го (кро­ме hexdump и ldd) вхо­дит в сос­тав пакета GNU Binutils. Если это­го пакета в тво­ей сис­теме нет, его лег­ко уста­новить. К при­меру, в Ubuntu это выг­лядит сле­дующим обра­зом:

sudo apt install binutils

В прин­ципе, имея все перечис­ленное, мож­но уже прис­тупать к ана­лизу и иссле­дова­нию ELF-фай­лов без прив­лечения допол­нитель­ных средств. Для боль­шего удобс­тва и наг­ляднос­ти мож­но добавить к нашему инс­тру­мен­тарию извес­тный в кру­гах реверс‑инже­неров дизас­сем­блер IDA в вер­сии Freeware (этой вер­сии для наших целей будет более чем дос­таточ­но, хотя ник­то не зап­реща­ет вос­поль­зовать­ся вер­сиями Home или Pro, если есть воз­можность за них зап­латить).

Анализ заголовка ELF-файла в IDA Freeware

Так­же неп­лохо было бы исполь­зовать вмес­то hexdump что‑то поудоб­нее, нап­ример 010 Editor или wxHex Editor. Пер­вый hex-редак­тор — дос­той­ная аль­тер­натива Hiew для Linux (в том чис­ле и бла­года­ря воз­можнос­ти исполь­зовать в нем боль­шое количес­тво шаб­лонов для раз­личных типов фай­лов, сре­ди них и шаб­лон для пар­синга ELF-фай­лов). Одна­ко он небес­плат­ный (сто­имость лицен­зии начина­ется с 49,95 дол­лара, при этом есть 30-днев­ный три­аль­ный пери­од).

Анализ заголовка ELF-файла в 010 Editor

Го­воря о допол­нитель­ных инс­тру­мен­тах, которые облегча­ют ана­лиз ELF-фай­лов, нель­зя не упо­мянуть Python-пакет lief. Исполь­зуя этот пакет, мож­но писать Python-скрип­ты для ана­лиза и модифи­кации не толь­ко ELF-фай­лов, но и фай­лов PE и MachO. Ска­чать и уста­новить этот пакет получит­ся тра­дици­онным для Python-пакетов спо­собом:

pip install lief

Подопытные экземпляры

В Linux (да и во мно­гих дру­гих сов­ремен­ных UNIX-подоб­ных опе­раци­онных сис­темах) фор­мат ELF исполь­зует­ся в нес­коль­ких типах фай­лов.

  • Ис­полня­емый файл — содер­жит все необ­ходимое для соз­дания сис­темой обра­за про­цес­са и запус­ка это­го про­цес­са. В общем слу­чае это инс­трук­ции и дан­ные. Так­же в фай­ле может при­сутс­тво­вать опи­сание необ­ходимых раз­деля­емых объ­ектных фай­лов, а так­же сим­воль­ная и отла­доч­ная информа­ция. Исполня­емый файл может быть позици­онно зависи­мым (в этом слу­чае он гру­зит­ся всег­да по одно­му и тому же адре­су, для 32-раз­рядных прог­рамм обыч­но это 0x8048000 , для 64-раз­рядных — 0x400000 ) и позици­онно незави­симым исполня­емым фай­лом (PIE — Position Independent Execution или PIC — Position Independent Code). В этом слу­чае адрес заг­рузки фай­ла может менять­ся при каж­дой заг­рузке. При пос­тро­ении позици­онно незави­симо­го исполня­емо­го фай­ла исполь­зуют­ся такие же прин­ципы, как и при пос­тро­ении раз­деля­емых объ­ектных фай­лов.
  • Пе­реме­щаемый файл — содер­жит инс­трук­ции и дан­ные, при этом они могут быть ста­тичес­ки свя­заны с дру­гими объ­ектны­ми фай­лами, в резуль­тате чего получа­ется раз­деля­емый объ­ектный или исполня­емый файл. К это­му типу отно­сят­ся объ­ектные фай­лы ста­тичес­ких биб­лиотек (как пра­вило, для ста­тичес­ких биб­лиотек имя начина­ется с lib и при­меня­ется рас­ширение *. a ), одна­ко, как мы уже говори­ли, рас­ширение в Linux прак­тичес­ки ничего не опре­деля­ет. В слу­чае ста­тичес­ких биб­лиотек это прос­то дань тра­диции, а работос­пособ­ность биб­лиоте­ки будет обес­печена с любым име­нем и любым рас­ширени­ем.
  • Раз­деля­емый объ­ектный файл — содер­жит инс­трук­ции и дан­ные, может быть свя­зан с дру­гими переме­щаемы­ми фай­лами или раз­деля­емы­ми объ­ектны­ми фай­лами, в резуль­тате чего будет соз­дан новый объ­ектный файл. Такие фай­лы могут выпол­нять фун­кции раз­деля­емых биб­лиотек (по ана­логии с DLL-биб­лиоте­ками Windows). При этом в момент запус­ка прог­раммы на выпол­нение опе­раци­онная сис­тема динами­чес­ки свя­зыва­ет эту раз­деля­емую биб­лиоте­ку с исполня­емым фай­лом прог­раммы, и соз­дает­ся исполня­емый образ при­ложе­ния. Опять же тра­дици­онно раз­деля­емые биб­лиоте­ки име­ют рас­ширение *. so (от англий­ско­го Shared Object).
  • Файл дам­па памяти — файл, который содер­жит образ памяти того или ино­го про­цес­са на момент его завер­шения. В опре­делен­ных ситу­ациях ядро может соз­давать файл с обра­зом памяти ава­рий­но завер­шивше­гося про­цес­са. Этот файл так­же соз­дает­ся в фор­мате ELF, одна­ко мы о такого рода фай­лах говорить не будем, пос­коль­ку задача иссле­дова­ния дам­пов и содер­жимого памяти дос­таточ­но объ­емна и тре­бует отдель­ной статьи.

Для наших изыс­каний нам желатель­но иметь все воз­можные вари­анты исполня­емых фай­лов из перечис­ленных выше, чем мы сей­час и зай­мем­ся.

Делаем исполняемые файлы

Не будем выдумы­вать что‑то свер­хориги­наль­ное, а оста­новим­ся на клас­сичес­ком хел­ловор­лде на С:

int main ( int argc , char * argv [] ) <
printf ( «Hello world» ) ;

Ком­пилиро­вать это дело мы будем с помощью GCC. Сов­ремен­ные вер­сии Linux, как пра­вило, 64-раз­рядные, и вхо­дящие в их сос­тав по умол­чанию средс­тва раз­работ­ки (в том чис­ле и ком­пилятор GCC) генери­руют 64-раз­рядные при­ложе­ния. Мы в сво­их иссле­дова­ниях не будем отдель­но вни­кать в 32-раз­рядные ELF-фай­лы (по боль­шому сче­ту отли­чий от 64-раз­рядных ELF-фай­лов в них не очень мно­го) и основные уси­лия сос­редото­чим имен­но на 64-раз­рядных вер­сиях прог­рамм. Если у тебя воз­никнет желание поэк­спе­римен­тировать с 32-раз­рядны­ми фай­лами, то при ком­пиляции в GCC нуж­но добавить опцию -m32 , при этом, воз­можно, пот­ребу­ется уста­новить биб­лиоте­ку gcc-multilib. Сде­лать это мож­но при­мер­но вот так:

sudo apt- get install gcc- multilib

Итак, назовем наш хел­ловорлд example. c (кста­ти, здесь как раз один из нем­ногих слу­чаев, ког­да в Linux рас­ширение име­ет зна­чение) и нач­нем с исполня­емо­го позици­онно зависи­мого кода:

gcc -no-pie example. c -o example_ no_ pie

Как ты уже догадал­ся, опция -no-pie как раз и говорит ком­пилято­ру соб­рать не позици­онно незави­симый код.

Во­обще, если говорить пра­виль­но, то GCC — это не сов­сем ком­пилятор. Это ком­плексная ути­лита, которая в зависи­мос­ти от рас­ширения вход­ного фай­ла и опций вызыва­ет нуж­ный ком­пилятор или ком­понов­щик с соот­ветс­тву­ющи­ми вход­ными дан­ными. При­чем из С или дру­гого высоко­уров­невого язы­ка сна­чала исходник тран­сли­рует­ся в ассем­блер­ный код, а уже затем все это окон­чатель­но пре­обра­зует­ся в объ­ектный код и собира­ется в нуж­ный нам ELF-файл.

В целом мож­но выделить четыре эта­па работы GCC:

  • преп­роцес­сирова­ние;
  • тран­сля­ция в ассем­блер­ный код;
  • пре­обра­зова­ние ассем­блер­ного кода в объ­ектный;
  • ком­понов­ка объ­ектно­го кода.

Что­бы пос­мотреть на про­межу­точ­ный резуль­тат, к при­меру в виде ассем­блер­ного кода, исполь­зуй в GCC опцию -S :

gcc -S -masm = intel example. c

Об­рати вни­мание на два момен­та. Пер­вый — мы в дан­ном слу­чае не зада­ем имя выход­ного фай­ла с помощью опции -o (GCC сам опре­делит его из исходно­го, добавив рас­ширение *. s , что и озна­чает при­сутс­твие в фай­ле ассем­блер­ного кода). Вто­рой момент — опция -masm=intel , которая говорит о том, что ассем­блер­ный код в выход­ном фай­ле необ­ходимо генери­ровать с исполь­зовани­ем син­такси­са Intel (по умол­чанию будет син­таксис AThttps://xakep.ru/2022/05/11/elf-anatomy/» target=»_blank»]xakep.ru[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru