Wat is het EXEC-bestandsformaat?
Uitvoerbare bestanden voor Unix en Unix-achtige systemen kunnen worden opgeslagen met de extensie .exec. Een .exec-bestand kan vrijwel elk uitvoerbaar programma op een bepaald besturingssysteem bevatten - ofwel een gecompileerd binair bestand (zoals een ELF binair bestand op Linux/Unix) of een tekstgebaseerd interpreter-script. .exec heeft zijn tegenhanger in de vorm van .exe-bestanden op Windows-systemen.
Als regel op Unix-systemen worden uitvoerbare bestanden opgeslagen zonder enige extensie - het .exec-achtervoegsel wordt gebruikt om uitvoerbare bestanden te markeren in bestandsbeheerders en IDE's op macOS, Linux of FreeBSD, om de uitvoerbare output te onderscheiden van bronbestanden.
De mogelijkheid om een .exec-bestand uit te voeren wordt bepaald door de machtigingsbits van het bestand en de interne header, niet door de extensie. De kernel controleert de magic bytes op offset 0: ELF-binaries beginnen met \x7FELF, macOS Mach-O-binaries met FEEDFACE, en scripts met #! gevolgd door een pad naar een interpreter (bijv. #!/bin/bash voor een .sh-script).
.exec-bestanden kunnen worden uitgevoerd vanaf de opdrachtregel (shell). Op macOS is de uitvoerbare bit (het x-machtigingskenmerk) wat telt - een bestand wordt correct uitgevoerd met of zonder de .exec-extensie. Gebruik voordat u een onbekend .exec-bestand uitvoert het file-commando om het werkelijke type te bevestigen.
Beveiliging & veiligheid
RISICO: HIGHEen uitvoerbaar bestand is het meest risicovolle bestandstype om uit te voeren van een onbetrouwbare bron: een .exec wordt uitgevoerd met uw gebruikersrechten en kan uw bestanden lezen, wijzigen, versleutelen of verwijderen en meer code downloaden. Voordat u er een uitvoert die u niet zelf hebt gebouwd: voer „file file.exec” uit om te zien wat het is, en als het een tekstscript is, lees het dan eerst. Op macOS blokkeert Gatekeeper standaard niet-ondertekende/niet-genotariseerde binaries - die waarschuwing is er voor uw bescherming. Voer nooit blindelings „chmod +x” uit op een bestand van een forum, e-mail of willekeurige download. De extensie „.exec” biedt geen veiligheid; vertrouw de bron, niet het achtervoegsel.
Formaatdetails
in een notendop- Applicatie/IDE export-markering - Sommige build-tools en apps noemen hun geproduceerde uitvoerbare artefact *.exec puur als label; het echte type eronder is nog steeds ELF/Mach-O/script.
Programma's die EXEC-bestanden openen
Technische details
diepe specificaties| Codering | Binair (ELF of Mach-O gecompileerde code) of platte tekst (interpreter-script met shebang) |
| Binair formaat op Linux/Unix | ELF (Executable and Linkable Format) - magic bytes 7F 45 4C 46 („\x7FELF”) op offset 0 |
| Binair formaat op macOS | Mach-O - magic FE ED FA CE (32-bit) of FE ED FA CF (64-bit); fat/universal binaries gebruiken CA FE BA BE |
| Script-markering | Shebang (#!) op byte-offset 0 gevolgd door interpreter-pad, bijv. #!/usr/bin/env python3 - verwerkt door de kernel vóór uitvoering |
| MIME-type | application/x-executable (Linux binair); application/x-mach-binary (macOS); application/x-shellscript (tekstscript) |
| Uitvoeringscontrole | Unix-machtigingsbits - de uitvoerbare (x) bit moet zijn ingesteld; de .exec-extensie zelf wordt door de kernel genegeerd |
| Doelplatform | Linux, macOS, BSD-varianten (FreeBSD, OpenBSD, NetBSD), Solaris en andere Unix-achtige systemen |
| Byte-volgorde | Little-endian voor x86-64 en ARM (meest moderne hardware); big-endian op legacy RISC Unix-platforms zoals SPARC en MIPS |
| Typische bestandsgrootte | 1 KB (minimaal shell-script) tot tientallen MB (statisch gekoppeld gecompileerd binair bestand) |
| Architectuurcodering | Ingebed in ELF e_machine-veld (x86-64 = 0x3E, ARM64 = 0xB7, RISC-V = 0xF3) of Mach-O cputype/cpusubtype-velden |
| Code-integriteit | Geen inherente checksum in het formaat; macOS ondersteunt code-ondertekening via de codesign-tool; Linux vertrouwt op externe GPG- of pakketbeheerder-handtekeningen |
| Compressie | Niet ingebouwd in het formaat; binaries kunnen UPX-gepakt zijn of verpakt in een zelfuitpakkend shell-script |
| Extensie-conventie | Het .exec-achtervoegsel is informeel - de meeste native Unix-executables dragen geen extensie; het OS gebruikt magic bytes, niet de bestandsnaam, om te bepalen hoe het bestand moet worden uitgevoerd |
| Windows-tegenhanger | .exe (PE/COFF-formaat) - de extensie is verplicht op Windows, in tegenstelling tot .exec dat optioneel is op Unix |
| Inspectie-commando | Het file-commando identificeert het werkelijke binaire type (ELF, Mach-O of script-interpreter) ongeacht de .exec-extensie |
| Uitgebracht | N/A (extension-less executables predate the .exec label; concept from early Unix) |
| Laatste versie | N/A - .exec is a convention, not a versioned format |
| Specificatie | refspecs.linuxfoundation.org |
EXEC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over EXEC-bestanden.