O que é o formato de ficheiro SWF?
Arquivos com a extensão .swf contêm animações - que podem ser interativas - armazenadas em um formato multimídia binário criado originalmente pela FutureWave Software em 1996. O nome significa Small Web Format, refletindo seu objetivo original de entregar animações compactas e eficientes em termos de largura de banda pela internet.
O formato foi adquirido pela Macromedia e, posteriormente, pela Adobe, sendo utilizado para criar e armazenar:
- conteúdo multimídia, incluindo áudio e vídeo,
- gráficos vetoriais e bitmaps,
- bytecode ActionScript e applets interativos.
As aplicações historicamente usadas para criar arquivos .swf incluem o Adobe Flash e o Adobe Animate, que o sucedeu; ferramentas de código aberto, como o SWFTools, também estavam disponíveis. Em 2008, a Adobe abriu parcialmente a especificação do formato, permitindo que mecanismos de busca como Google e Yahoo indexassem o conteúdo dentro das animações. O formato se desenvolveu ao longo de muitos anos: as versões iniciais permitiam animar apenas gráficos vetoriais, e as versões posteriores estenderam suas possibilidades para streaming de áudio e vídeo e animação 3D básica.
O Adobe Flash Player - o plugin de navegador necessário para reproduzir arquivos .swf - chegou ao fim da vida útil em 31 de dezembro de 2020. Os arquivos ainda podem ser reproduzidos fora de um navegador usando o emulador Ruffle autônomo ou por meio do reprodutor de preservação de Flash do Internet Archive. Os projetos de origem eram normalmente salvos como arquivos .FLA e compilados para .swf para distribuição; formatos relacionados incluem .FLV para fluxos de vídeo Flash e .SWC para bibliotecas de componentes Flash reutilizáveis.
Segurança e proteção
RISCO: MEDIUMO SWF foi um vetor notório de malware - o Flash Player teve um longo histórico de CVEs críticos de execução remota de código, o que é um dos principais motivos de sua descontinuação. O plug-in legado desapareceu, portanto, explorações de SWF por acesso direto em navegadores não são mais uma ameaça ativa. Riscos residuais: (1) um SWF contém ActionScript que pode fazer chamadas de rede ou abrir URLs, portanto, execute arquivos não confiáveis apenas no Ruffle isolado (preferencial) em vez do projetor de depuração offline; (2) arquivos «projector» .exe maliciosos fingindo ser uma animação inofensiva; (3) nunca reinstale o Flash Player descontinuado de sites de «codecs» de terceiros - esses instaladores são, eles próprios, uma isca comum de malware.
Detalhes do formato
em resumoProgramas que abrem arquivos SWF
Detalhes técnicos
especificação profunda| Magic bytes | FWS (46 57 53) = não compactado; CWS (43 57 53) = compactado com zlib; ZWS (5A 57 53) = compactado com LZMA - todos no deslocamento de byte 0 |
| Campos de versão e comprimento | O byte 3 codifica o número da versão do SWF (1-46); os bytes 4-7 armazenam o comprimento total do arquivo não compactado como um uint32 little-endian |
| Tipo MIME | application/x-shockwave-flash |
| Compressão | Nenhuma (SWF 1-5); zlib aplicada após o cabeçalho de 8 bytes (SWF 6+, assinatura CWS); LZMA aplicada após o cabeçalho de 8 bytes (SWF 13+, assinatura ZWS) - os primeiros 8 bytes nunca são compactados |
| Unidade de coordenada | Twip (1/20 de um pixel); todos os valores espaciais são armazenados como inteiros twip usando campos de bits SWF de comprimento variável |
| Estrutura baseada em tags | Conteúdo codificado como registros marcados: cabeçalho curto de 2 bytes (tipo de registro de 10 bits + comprimento de 6 bits) ou cabeçalho longo de 6 bytes para cargas úteis ≥ 63 bytes |
| Gráficos vetoriais | Formas definidas via registros SHAPE com arestas de curva de Bézier quadrática; os tipos de preenchimento incluem cor sólida, gradiente linear/radial e bitmap |
| Mecanismo de script | ActionScript 1 e 2 rodam em AVM1 (VM interpretada baseada em pilha); ActionScript 3 (SWF 9+) roda em AVM2 (baseada em registradores, com JIT em alguns ambientes de execução) |
| Codecs de vídeo | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 e VP6 com canal alfa (SWF 8+) |
| Codecs de áudio | PCM não compactado, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Incorporação de fontes | Contornos TrueType convertidos em registros de forma SWF; as tags DefineFont2 e DefineFont3 incluem tabelas completas de caracteres Unicode |
| Transformações 3D | A tag PlaceObject3 (SWF 11+) adiciona uma matriz de perspectiva 4×4 permitindo rotação 3D e projeção de objetos da lista de exibição |
| Incorporação de dados binários | A tag DefineBinaryData (SWF 9+) permite que cargas úteis binárias brutas arbitrárias sejam armazenadas dentro do contêiner .swf |
| Modelo de linha do tempo | Lista de exibição baseada em quadros; cada quadro é um diff das tags PlaceObject e RemoveObject aplicadas ao grafo de cena - não é um snapshot completo de quadro-chave |
| Lançado | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Padrão aberto | Sim · livre de royalties |
| Especificação | web.archive.org |
Conversões de SWF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SWF.