Che cos'è il formato di file SWF?
I file con estensione .swf contengono animazioni - che possono essere interattive - memorizzate in un formato multimediale binario originariamente creato da FutureWave Software nel 1996. Il nome sta per Small Web Format, riflettendo il suo obiettivo originale di fornire animazioni compatte e ottimizzate per la banda su Internet.
Il formato è stato acquisito da Macromedia e successivamente da Adobe, ed è utilizzato per creare e memorizzare:
- contenuti multimediali inclusi audio e video,
- grafica vettoriale e bitmap,
- bytecode ActionScript e applet interattive.
Le applicazioni storicamente utilizzate per creare file .swf includono Adobe Flash e Adobe Animate, che lo ha succeduto; erano disponibili anche strumenti open-source come SWFTools. Nel 2008, Adobe ha parzialmente aperto le specifiche del formato, consentendo ai motori di ricerca come Google e Yahoo di indicizzare i contenuti all'interno delle animazioni. Il formato si è evoluto per molti anni: le prime versioni consentivano di animare solo grafica vettoriale, mentre le versioni successive hanno esteso le possibilità allo streaming audio e video e all'animazione 3D di base.
Adobe Flash Player - il plugin del browser richiesto per riprodurre i file .swf - ha raggiunto la fine del ciclo di vita il 31 dicembre 2020. I file possono ancora essere riprodotti al di fuori di un browser utilizzando l'emulatore standalone Ruffle o tramite il lettore di preservazione Flash di Internet Archive. I progetti sorgente venivano tipicamente salvati come file .FLA e compilati in .swf per la distribuzione; i formati correlati includono .FLV per i flussi video Flash e .SWC per le librerie di componenti Flash riutilizzabili.
Sicurezza e incolumità
RISCHIO: MEDIUML'SWF era un noto vettore di malware - Flash Player ha avuto una lunga storia di CVE critiche per l'esecuzione di codice in modalità remota, motivo principale per cui è stato eliminato. Il plug-in legacy è scomparso, quindi gli exploit SWF drive-by nei browser non sono più una minaccia attiva. Rischi residui: (1) un SWF contiene ActionScript che può effettuare chiamate di rete o aprire URL, quindi esegui i file non attendibili solo nel sandbox di Ruffle (preferito) anziché nel proiettore di debug offline; (2) file «projector» .exe malevoli che fingono di essere un'animazione innocua; (3) non reinstallare mai il Flash Player dismesso da siti di «codec» di terze parti - quegli installatori sono essi stessi un comune esca per malware.
Dettagli del formato
in sintesiProgrammi che aprono file SWF
Dettagli tecnici
specifiche approfondite| Magic bytes | FWS (46 57 53) = non compresso; CWS (43 57 53) = compresso con zlib; ZWS (5A 57 53) = compresso con LZMA - tutti all'offset byte 0 |
| Campi versione e lunghezza | Il byte 3 codifica il numero di versione SWF (1-46); i byte 4-7 memorizzano la lunghezza totale del file non compresso come uint32 little-endian |
| Tipo MIME | application/x-shockwave-flash |
| Compressione | Nessuna (SWF 1-5); zlib applicata dopo l'intestazione di 8 byte (SWF 6+, firma CWS); LZMA applicata dopo l'intestazione di 8 byte (SWF 13+, firma ZWS) - i primi 8 byte non sono mai compressi |
| Unità di coordinate | Twip (1/20 di un pixel); tutti i valori spaziali sono memorizzati come interi twip utilizzando campi di bit SWF a lunghezza variabile |
| Struttura basata su tag | Contenuto codificato come record con tag: intestazione breve di 2 byte (tipo record a 10 bit + lunghezza a 6 bit) o intestazione lunga di 6 byte per payload ≥ 63 byte |
| Grafica vettoriale | Forme definite tramite record SHAPE con bordi a curva di Bézier quadratica; i tipi di riempimento includono colore a tinta unita, gradiente lineare/radiale e bitmap |
| Motore di scripting | ActionScript 1 e 2 vengono eseguiti su AVM1 (VM interpretata basata su stack); ActionScript 3 (SWF 9+) viene eseguito su AVM2 (basata su registri, con JIT in alcuni runtime) |
| Codec video | Sorenson Spark (SWF 6+), Screen Video (SWF 7+), On2 VP6 e VP6 con canale alfa (SWF 8+) |
| Codec audio | PCM non compresso, ADPCM, MP3, Nellymoser (SWF 6+), Speex (SWF 10+) |
| Incorporamento font | Contorni TrueType convertiti in record di forma SWF; i tag DefineFont2 e DefineFont3 includono tabelle di caratteri Unicode complete |
| Trasformazioni 3D | Il tag PlaceObject3 (SWF 11+) aggiunge una matrice di prospettiva 4×4 che consente la rotazione 3D e la proiezione di oggetti della display-list |
| Incorporamento dati binari | Il tag DefineBinaryData (SWF 9+) consente di memorizzare payload binari grezzi arbitrari all'interno del contenitore .swf |
| Modello timeline | Display-list basata su fotogrammi; ogni fotogramma è un diff dei tag PlaceObject e RemoveObject applicati al grafo della scena - non un'istantanea completa del fotogramma chiave |
| Rilasciato | 1996 (FutureSplash Animator); Adobe published the SWF File Format Specification, now withdrawn after Flash EOL |
| Standard aperto | Sì · royalty-free |
| Specifica | web.archive.org |
Conversioni SWF
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file SWF.