This post describes howto decompose a SWF Flash-file using linux and a program named swfextract. The post came to life because I had to do some changes to one of my flash presentations but I had deleted all the source files. After searching the Internet i doscovered swfextract.
SWF Tools is a collection of SWF (Flash) manipulation and creation utilities like pdf2swf, jpeg2swf, png2swf, gif2swf, font2swf, wav2swf, swfcombine, swfdump, swfstrings, swfbbox and swfc. But I’m only going to use swfextract in this post.
If you don’t have it installed on your system, download it and install the deb-package
# wget http://http.us.debian.org/debian/pool/main/s/swftools/swftools_0.8.1-2.1_i386.deb # dpkg -i swftools_0.8.1-2.1_i386.deb
The swftools package depends on several packages like libgif4 libt1-5 and they should be installed before swftools
# aptitude install libgif4 libt1-5
I was interested in extracting the image files in my Flash presentation and did the following to determine what was in the presentation file
# swfextract flashfile.swf Objects in file flashfile.swf: [-i] 5 Shapes: ID(s) 1, 3, 5, 7, 9 [-j] 4 JPEGs: ID(s) 2, 6, 8, 10 [-f] 1 Frame: ID(s) 0
As we see above there are 4 JPEG-files I'm interested in extracting and their IDs.
I did the following to extract the image files
# swfextract -i 2 -j 2,6,8,10 flashfile.swf
output.swf pic10.jpg pic2.jpg pic6.jpg pic8.jpg
If you don't use the -i switch you will end up with only one output.jpg file.
You are now ready to recreate the Flash presentation using the extracted image files.