Ця стаття потребує додаткових для поліпшення її . (липень 2016) |
ELF (англ. Executable and Linkable Format — формат виконання та зв'язування, раніше звався англ. Extensible Linking Format — розширюваний зв'язувальний формат) — формат виконуваного файла, об'єктних модулів, розділювальних бібліотек та ; використовується в багатьох Unix-подібних операційних системах, наприклад, в Linux, FreeBSD і Solaris.
Історія
ELF формат був розроблений і опублікований (USL), як частина двійкового бінарного інтерфейсу (ABI). (TIS) визначив ELF, як стандарт для портативних об'єктних файлів, що працюють на 32-бітних архітектурах компанії Intel, для різних операційних систем.
Структура
В заголовному файлі визначена структура, що описує ELF файли.
ELF файли бувають:
- виконуваними (normal executable files) — файли придатні для виконання, створює образ процесу (process image);
- об'єктними (relocatable object files) — містять код та дані, придатні для зв'язування (linking) з іншими об'єктними файлами для створення виконуваних;
- спільні об'єктні файли (shared object file) — містять код та дані, придатні для зв'язування у двох сенсах: статичне зв'язування (зв'язування з іншими об'єктними файлами під час процесу зв'язування для створення виконуваних файлів), динамічне зв'язування (звертання виконуваного файлу до спільних об'єктних файлів, для створення образу процесу).
Кожен файл формату ELF має ELF-заголовок (ELF header) (обов'язково), потім йде таблиця програмних заголовків (program header table) чи таблиця заголовків секцій (section header table), або і те, і інше. ELF-заголовок обов'язково має нульове зміщення у файлі (тобто знаходиться на його початку). Зміщення у файлі для таблиці програмних заголовків і таблиці заголовків секцій визначається у ELF-заголовку.
ELF-заголовок, таблиця програмних заголовків, таблиця заголовків секцій описуються, як структури C, які включають в себе інші типи, що також визначені у заголовному файлі <elf.h>.
Нижче перераховані типи, які використовують для N-бітної архітектури (N = 32 чи 64):
ElfN_Addr Беззнакова адреса, uintN_t ElfN_Off Беззнакове зміщення, uintN_t ElfN_Section Беззнаковий індекс секції, uint16_t ElfN_Versym Unsigned version symbol information, uint16_t Elf_Byte Беззнаковий char ElfN_Half uint16_t ElfN_Sword int32_t ElfN_Word uint32_t ElfN_Sxword int64_t ElfN_Xword uint64_t
Поля цієї таблиці використовує завантажувач () для запису програми в оперативну пам'ять перед виконуванням.
Робота з ELF файлами
Для роботи з ELF файлами використовують бібліотеку libelf.
Також можна використовувати програми з пакету GNU Binutils.
Література
- O'Neill, Ryan (2016). Learning Linux binary analysis uncover the secrets of Linux binary analysis with this handy guide. Birmingham: Packt Publishing. ISBN . Процитовано 22 липня 2016.
Посилання
- Докладний опис ELF формату [ 16 червня 2012 у Wayback Machine.] (англ.)
- Як зробити Linux-програми меншими [ 12 квітня 2021 у Wayback Machine.] (рос.)
- Використання додаткових .ELF сегментів в QNX [ 20 листопада 2008 у Wayback Machine.] (рос.)
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про операційні системи. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lipen 2016 ELF angl Executable and Linkable Format format vikonannya ta zv yazuvannya ranishe zvavsya angl Extensible Linking Format rozshiryuvanij zv yazuvalnij format format vikonuvanogo fajla ob yektnih moduliv rozdilyuvalnih bibliotek ta vikoristovuyetsya v bagatoh Unix podibnih operacijnih sistemah napriklad v Linux FreeBSD i Solaris IstoriyaELF format buv rozroblenij i opublikovanij USL yak chastina dvijkovogo binarnogo interfejsu ABI TIS viznachiv ELF yak standart dlya portativnih ob yektnih fajliv sho pracyuyut na 32 bitnih arhitekturah kompaniyi Intel dlya riznih operacijnih sistem StrukturaV zagolovnomu fajli viznachena struktura sho opisuye ELF fajli ELF fajli buvayut vikonuvanimi normal executable files fajli pridatni dlya vikonannya stvoryuye obraz procesu process image ob yektnimi relocatable object files mistyat kod ta dani pridatni dlya zv yazuvannya linking z inshimi ob yektnimi fajlami dlya stvorennya vikonuvanih spilni ob yektni fajli shared object file mistyat kod ta dani pridatni dlya zv yazuvannya u dvoh sensah statichne zv yazuvannya zv yazuvannya z inshimi ob yektnimi fajlami pid chas procesu zv yazuvannya dlya stvorennya vikonuvanih fajliv dinamichne zv yazuvannya zvertannya vikonuvanogo fajlu do spilnih ob yektnih fajliv dlya stvorennya obrazu procesu Kozhen fajl formatu ELF maye ELF zagolovok ELF header obov yazkovo potim jde tablicya programnih zagolovkiv program header table chi tablicya zagolovkiv sekcij section header table abo i te i inshe ELF zagolovok obov yazkovo maye nulove zmishennya u fajli tobto znahoditsya na jogo pochatku Zmishennya u fajli dlya tablici programnih zagolovkiv i tablici zagolovkiv sekcij viznachayetsya u ELF zagolovku ELF zagolovok tablicya programnih zagolovkiv tablicya zagolovkiv sekcij opisuyutsya yak strukturi C yaki vklyuchayut v sebe inshi tipi sho takozh viznacheni u zagolovnomu fajli lt elf h gt Nizhche pererahovani tipi yaki vikoristovuyut dlya N bitnoyi arhitekturi N 32 chi 64 ElfN Addr Bezznakova adresa uintN t ElfN Off Bezznakove zmishennya uintN t ElfN Section Bezznakovij indeks sekciyi uint16 t ElfN Versym Unsigned version symbol information uint16 t Elf Byte Bezznakovij char ElfN Half uint16 t ElfN Sword int32 t ElfN Word uint32 t ElfN Sxword int64 t ElfN Xword uint64 t Polya ciyeyi tablici vikoristovuye zavantazhuvach dlya zapisu programi v operativnu pam yat pered vikonuvannyam Robota z ELF fajlamiDlya roboti z ELF fajlami vikoristovuyut biblioteku libelf Takozh mozhna vikoristovuvati programi z paketu GNU Binutils LiteraturaO Neill Ryan 2016 Learning Linux binary analysis uncover the secrets of Linux binary analysis with this handy guide Birmingham Packt Publishing ISBN 978 1 78216 711 2 Procitovano 22 lipnya 2016 PosilannyaDokladnij opis ELF formatu 16 chervnya 2012 u Wayback Machine angl Yak zrobiti Linux programi menshimi 12 kvitnya 2021 u Wayback Machine ros Vikoristannya dodatkovih ELF segmentiv v QNX 20 listopada 2008 u Wayback Machine ros Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi