.ELF

ELF-fil

Executable and Linkable Format
Ställ en fråga
SNABBT SVAR

En ELF-fil är det binära körbara formatet som används av Linux, Android, BSD-systemen och de flesta Unix-liknande system - motsvarigheten till Windows EXE. På Linux kör du den direkt; en PS2-homebrew .elf körs i PCSX2, en GameCube/Wii .elf körs i Dolphin. ELF körs inte nativt på Windows eller macOS, och precis som alla körbara filer kan de innehålla skadlig kod, så kör endast filer från källor du litar på.

Utvecklare: Unix System Laboratories (AT&T); now an open System V / TIS standard Kategori: Exekverbara filer Öppen standard MIME: application/x-elf
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .APK · .EXE · .VBS · .JAR

På denna sida

19k+ filtillägg indexerade
Senast granskad Aug 26, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet ELF?

Filer med filändelsen .elf lagrar binär data strukturerad enligt standarden Executable and Linkable Format - standardformatet för körbara filer och objektfiler för Linux, de flesta Unix-liknande system och många inbäddade plattformar. Formatet introducerades med Unix System V Release 4 av Unix System Laboratories och ratificerades senare som en Tool Interface Standard (TIS) portabel specifikation.

ELF-filer kan lagra följande typer av innehåll:

  • Körbara filer för applikationer och verktyg, ofta distribuerade som en .bin-fil
  • Kompilerade objektfiler, som vanligtvis har filändelsen .o
  • Delade bibliotek - filer med filändelsen .so
  • Core-dumpar (ögonblicksbilder av minnet som skapas efter att en process kraschat)

Formatet är uppbyggt kring en väldefinierad binär struktur. Varje .elf-fil börjar med den 4 byte långa magiska sekvensen 7F 45 4C 46 (0x7F följt av ASCII-bokstäverna ELF) vid offset 0, följt av huvudfält (headers) som identifierar målarkitektur, ordstorlek (32-bitars eller 64-bitars) och byteordning (little-endian eller big-endian). Två valfria tabeller - program header table och section header table - beskriver sedan hur segment ska laddas vid körning och hur sektioner är organiserade för länkning.

Även om ELF-standarden utvecklades med Unix-system i åtanke, anammades den snabbt av andra plattformar, inklusive spelkonsoler som PlayStation 2 och Wii, Android och många inbäddade miljöer. Den standardiserade MIME-typen är application/x-elf. Innehållet i en .elf-fil är inte läsbart för människor; verktyg som readelf och objdump (båda delar av GNU Binutils) kan inspektera dess huvuden och disassemblera dess kod utan att exekvera den.

Säkerhet & trygghet

RISK: HIGH

Precis som alla körbara filer kan en ELF innehålla skadlig kod - Linux/IoT-botnät (t.ex. Mirai-varianter) levereras som ELF-binärer, och en ELF körs med dina rättigheter när den exekveras. Kör endast ELF-filer från betrodda källor; använd inte «chmod +x» och kör slumpmässiga nedladdningar. Inspektera okända ELF-filer säkert med readelf/objdump eller skanna dem på VirusTotal innan körning. Konsol-homebrew .elf-filer innebär lägre risk (de körs inuti en emulators sandlåda) men hämta dem ändå från välrenommerade homebrew-källor.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNExecutable and Linkable Format
UTVECKLAREUnix System Laboratories (AT&T); now an open System V / TIS standardsedan 1989 (Unix System V Release 4); adopted as the TIS/System V ABI standard
MIME-TYPapplication/x-elf
TYPFormat för binära körbara filer / objekt / delade bibliotek
STANDARDÖppen · royaltyfri
MAGIC BYTES · FILSIGNATUR
OFFSET
00010203
HEX
7F454C46
ASCII
·ELF
Varje ELF-fil börjar med den 4 byte långa magiska sekvensen 7F 45 4C 46 (0x7F + «ELF») vid offset 0. Byte 4 (EI_CLASS) är 1 för 32-bitars / 2 för 64-bitars; byte 5 (EI_DATA) är 1 för little-endian / 2 for big-endian; byte 16 (e_type) anger om det är en körbar fil, ett relokerbart objekt, ett delat objekt (.so) eller en core-dump.

Program som öppnar ELF-filer

Windows3 apps
PCSX2 (PlayStation 2 emulator) Öppen källkod Kör en PS2 homebrew/SDK .elf: File > Run ELF (eller starta .elf-filen direkt). Endast för PS2 ELF-binärer.
Dolphin (GameCube/Wii emulator) Öppen källkod Öppna en GameCube/Wii homebrew .elf i Dolphin för att köra den. Endast för Nintendo-konsol ELF-binärer.
Ghidra Öppen källkod Importera ELF-filen för att disassemblera och dekompilera den till läsbar C - för reverse engineering och analys.
macOS1 app
Ghidra Öppen källkod Importera ELF-filen för att disassemblera och dekompilera den till läsbar C - för reverse engineering och analys.
Linux4 apps
Linux (run it) Inbyggd Gör den körbar och kör: «chmod +x ./program && ./program». En körbar ELF ÄR programmet - det finns inget att «visa». Den måste matcha din CPU-arkitektur.
readelf (GNU binutils) Öppen källkod Inspektera utan att köra: «readelf -a fil.elf» visar huvuden, sektioner, symboler och målarkitektur.
objdump (GNU binutils) Öppen källkod Disassemblera: «objdump -d fil.elf» visar maskinkoden; «objdump -x» visar alla huvuden.
Ghidra Öppen källkod Importera ELF-filen för att disassemblera och dekompilera den till läsbar C - för reverse engineering och analys.

Tekniska detaljer

djup specifikation
Magiskt nummer`7F 45 4C 46` (0x7F följt av ASCII `ELF`) vid byte-offset 0, finns i varje giltig ELF-fil
MIME-typ`application/x-elf`
Varianter av ordstorlek32-bitars (EI_CLASS = `01`) och 64-bitars (EI_CLASS = `02`), kodat vid offset 4 i ELF-huvudet
Fält för byteordningEI_DATA vid offset 5: `01` = little-endian, `02` = big-endian; bestäms av målets hårdvaruarkitektur
Filtyper (e_type)ET_EXEC (körbar), ET_REL (relokerbart objekt), ET_DYN (delat objekt eller PIE), ET_CORE (core-dump)
Målarkitekturerx86, x86-64, ARM, AArch64, MIPS, RISC-V, PowerPC, SPARC och många andra, identifierade av fältet `e_machine` i ELF-huvudet
OS/ABI-identifierareEI_OSABI-byte vid offset 7 specificerar mål-ABI: 0 = System V, 3 = Linux, 9 = FreeBSD, 12 = Solaris
StrukturlayoutELF-huvud → valfri program header table (segment för laddning vid körning) → data → valfri section header table (sektioner för länkning)
Namngivna nyckelsektioner`.text` (kod), `.data` (initierad data), `.bss` (noll-initierad data), `.rodata` (konstanter), `.symtab` / `.dynsym` (symboler), `.rel` / `.rela` (relokeringar)
Dynamisk länkningDelade objekt löses vid laddning av körtidslänkaren (`ld.so`); sökvägen till den tolk som krävs lagras i programhuvudet `PT_INTERP`
FelsökningsinformationDWARF-felsökningsdata är inbäddad i `.debug_*` ELF-sektioner och kan tas bort från produktionsbinärer med kommandot `strip`
Positionsoberoende körbara filerPIE-binärer är av typen ET_DYN och stöder ASLR; Linux-kärnan randomiserar deras basadress vid varje start
Primära inspektionsverktyg`readelf -a` (huvuden, symboler, sektioner) och `objdump -d` (disassemblering), båda tillhandahålls av GNU Binutils
Släppt1989 (Unix System V Release 4); adopted as the TIS/System V ABI standard
Öppen standardJa · royaltyfri
Specifikationrefspecs.linuxfoundation.org

ELF-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med ELF-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om ELF-filer.

Vanliga frågor

Hur öppnar jag en ELF-fil?
Det beror på vad det är. En ELF för Linux-program körs, den öppnas inte: «chmod +x ./fil && ./fil». En PlayStation 2 homebrew .elf körs i PCSX2; en GameCube/Wii .elf körs i Dolphin. För att titta inuti en ELF utan att köra den, använd readelf, objdump eller Ghidra.
Kan jag köra en ELF-fil på Windows?
Inte nativt - ELF är Unix/Linux-formatet, Windows använder EXE/PE. Använd WSL (Windows Subsystem for Linux) eller en Linux-VM för att köra en Linux-ELF, eller en emulator (PCSX2/Dolphin) för att köra en konsol-homebrew .elf.
Är en ELF-fil samma sak som en EXE?
De är motsvarigheter på olika system: ELF är körformatet för Linux/Unix, EXE (PE) är formatet för Windows. De är inte utbytbara och kan inte konverteras till varandra.
Hur kör jag en ELF i PCSX2 eller Dolphin?
I PCSX2 använder du «Run ELF» (eller startar .elf-filen) för PS2-homebrew; i Dolphin öppnar du .elf-filen direkt för GameCube/Wii-homebrew. Du behöver rätt emulator för den konsol som ELF-filen byggdes för.
Hur kan jag se vad som finns inuti en ELF-fil?
Använd «readelf -a fil» för huvuden/sektioner/symboler, «objdump -d fil» för att disassemblera, eller importera den i Ghidra för att dekompilera till C. Detta inspekterar filen utan att exekvera den.
Är det säkert att köra en ELF-fil?
Endast från en källa du litar på - ELF-binärer kan vara skadlig kod (Linux/IoT-botnät är ELF). Inspektera okända filer med readelf/VirusTotal först. Konsol-homebrew .elf-filer körs i en sandlåda inuti en emulator och innebär lägre risk.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

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.TXTPlain Text File

Relaterade filtillägg

.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)

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö