O que é o formato de ficheiro EXEC?
Arquivos executáveis para sistemas Unix e do tipo Unix podem ser salvos com a extensão .exec. Um arquivo .exec pode conter virtualmente qualquer programa executável em um determinado sistema operacional - seja um binário compilado (como um binário ELF no Linux/Unix) ou um script interpretador de texto simples. O .exec tem sua contraparte na forma de arquivos .exe em sistemas Windows.
Como regra em sistemas Unix, arquivos executáveis são salvos sem qualquer extensão - o sufixo .exec é usado para marcar arquivos executáveis em gerenciadores de arquivos e IDEs no macOS, Linux ou FreeBSD, distinguindo a saída executável dos arquivos de origem.
A capacidade de executar um arquivo .exec é determinada pelos bits de permissão do arquivo e seu cabeçalho interno, não pela extensão. O kernel verifica os magic bytes no deslocamento 0: binários ELF começam com \x7FELF, binários Mach-O do macOS com FEEDFACE e scripts com #! seguido pelo caminho de um interpretador (ex: #!/bin/bash para um script .sh).
Arquivos .exec podem ser executados a partir da linha de comando (shell). No macOS, o bit executável (o atributo de permissão x) é o que importa - um arquivo funciona corretamente com ou sem a extensão .exec. Antes de executar um arquivo .exec desconhecido, use o comando file para confirmar seu tipo real.
Segurança e proteção
RISCO: HIGHUm executável é o tipo de arquivo de maior risco para executar de uma fonte não confiável: um .exec é executado com seus privilégios de usuário e pode ler, modificar, criptografar ou excluir seus arquivos e baixar mais código. Antes de executar um que você não construiu: execute «file arquivo.exec» para ver o que é e, se for um script de texto, leia-o primeiro. No macOS, o Gatekeeper bloqueará binários não assinados/não notarizados por padrão - esse aviso existe para sua proteção. Nunca use «chmod +x» cegamente e execute um arquivo de um fórum, e-mail ou download aleatório. A extensão «.exec» não confere segurança; confie na fonte, não no sufixo.
Detalhes do formato
em resumo- Marcador de exportação de Aplicativo/IDE - Algumas ferramentas de build e aplicativos nomeiam seu artefato executável produzido como *.exec puramente como um rótulo; o tipo real por baixo ainda é ELF/Mach-O/script.
Programas que abrem arquivos EXEC
Detalhes técnicos
especificação profunda| Codificação | Binário (código compilado ELF ou Mach-O) ou texto simples (script interpretador com shebang) |
| Formato binário no Linux/Unix | ELF (Executable and Linkable Format) - magic bytes 7F 45 4C 46 («\x7FELF») no deslocamento 0 |
| Formato binário no macOS | Mach-O - magic FE ED FA CE (32 bits) ou FE ED FA CF (64 bits); binários fat/universais usam CA FE BA BE |
| Marcador de script | Shebang (#!) no deslocamento de byte 0 seguido pelo caminho do interpretador, ex: #!/usr/bin/env python3 - analisado pelo kernel antes da execução |
| Tipo MIME | application/x-executable (binário Linux); application/x-mach-binary (macOS); application/x-shellscript (script de texto) |
| Controle de execução | Bits de permissão Unix - o bit executável (x) deve estar definido; a extensão .exec em si é ignorada pelo kernel |
| Plataforma de destino | Linux, macOS, variantes BSD (FreeBSD, OpenBSD, NetBSD), Solaris e outros sistemas do tipo Unix |
| Ordem dos bytes | Little-endian para x86-64 e ARM (maioria do hardware moderno); big-endian em plataformas Unix RISC legadas como SPARC e MIPS |
| Tamanho típico do arquivo | 1 KB (script shell mínimo) a dezenas de MB (binário compilado vinculado estaticamente) |
| Codificação de arquitetura | Incorporada no campo e_machine do ELF (x86-64 = 0x3E, ARM64 = 0xB7, RISC-V = 0xF3) ou campos cputype/cpusubtype do Mach-O |
| Integridade do código | Nenhum checksum inerente ao formato; o macOS suporta assinatura de código via ferramenta codesign; o Linux depende de assinaturas GPG externas ou do gerenciador de pacotes |
| Compressão | Não integrada ao formato; binários podem ser compactados com UPX ou envolvidos em um script shell autoextraível |
| Convenção de extensão | O sufixo .exec é informal - a maioria dos executáveis nativos do Unix não possui extensão; o SO usa magic bytes, não o nome do arquivo, para determinar como executar o arquivo |
| Contraparte no Windows | .exe (formato PE/COFF) - a extensão é obrigatória no Windows, ao contrário do .exec que é opcional no Unix |
| Comando de inspeção | O comando file identifica o tipo real do binário (ELF, Mach-O ou interpretador de script) independentemente da extensão .exec |
| Lançado | N/A (extension-less executables predate the .exec label; concept from early Unix) |
| Versão mais recente | N/A - .exec is a convention, not a versioned format |
| Especificação | refspecs.linuxfoundation.org |
Conversões de EXEC
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos EXEC.