views:

400

answers:

3

Is there an unofficial spec anywhere that explains how to reverse engineer a Flash .FLA file?

I'm specifically interested in creating an application that can "auto-scene plan" a Flash document programmatically, pulling in content from other files, arranging that content into layers, without needing the Flash IDE open. Animators would then be able to take these pre-assembled FLA's and begin animating them. I've already built a JSFL script that does this, but it runs very slowly, is difficult to debug or re-purpose.

+4  A: 

Hi,

I've spent days looking around the internet, to see if there is anyway in to, do a reverse engineer but nought really. I don't there is a .FLA spec floating about. I've spent the last couple of days looking. If their was one, and you were using it, you would receive a cease and desist letter from Adobe, followed by the canadian equivalent of the DMCA take down notice.

According to Wikipedia, the format is a binary format, which is based on a Microsoft Binary compound file format specification, described here on Wikipedia. Compound File Format. But strangely because of, I think, the European anti trust settlements forcing Microsoft to publish their specs means you can download the MS Compoud File Format, here by typing Microsoft compound file format into Google. The first entry is the download link.

Once you have studied it, then you need to get a tool set together. It may be possible, their is a decompiler available for that format from MS. If not, your looking at maybe 3-6 months of work to get a basic spec together.

In the early 90's I reversed engineered the Novell IPX protocol and the NCP stack, which was a case of sending messages to the server, and getting a reply. So it fairly mechanical and tedious, after a few months we had a really good idea what was needed, and we built up a map of the IPX protocol calls, and replies. Same with NCP. We eventually were contacted by Novell who sent us a cease and desist and eventually wanted to sue us. But at the end of the day, they crapped out because we were using Clean Room techniques Wikipedia Clean Rooms explained. We pretty much took it apart from a server product in Binary, using a packet analyser, and rebuilt it using C++. But that was protocol reverse engineering. Much easier that what you are reflecting on.

So the first thing you need, is a disassembler. I can't give you any advice on what one to use, but there is many out their. Once you get the format, and you disassemble the file, you have to try and identify file headers, footers, constants, things like special symbol sequences, so you can start to create a map. For example on page 6 of the Windows Compound Binary File Format, it says in _absig has a signature format of DOCF 11E0 A1B1 1AE1. If you can find that kind of info in a the file, you start the map.

But before you go to that length, see if their is a decompiler about. I think most of the decompilers you find in Google will perhaps be lightweight. Go to hacker groups like these. CrackZ. That IDA product is a disassembler. This may help. Introduction to Reverse Engineering. Reverse Engineering Community

Hope that help. If you do, do it. It will take months. Persevere! Bob.

scope_creep
I wonder about the cease and desist since several companies make SWF-to-FLA decompilers. They have clearly figured out the FLA spec enough to turn SWFs back into editable FLAs. I was wondering if they were working from some sort of published spec or if their research is proprietary.
Soviut
I don't know, as I couldn'f find anything specific, not even outlines or any intial work done, or even discussions. I suspect it has been well protected, as its the defacto standard for web movies. If a commercial did do the work, I suspect they would view it as proprietry and they would protect it. Maybe some hacker groups have something available. Might be worth visiting, if you have the time, black hat hacker conferences, ask about, see if you get a lead. It might also be the case that you off load the work, if you go down that route. Off shore it. Give it to the russians perhaps.
scope_creep
I was just reading the new porposed interoperability guidelines that MS has pulblished as part of the European anitrust commission agreement, and it looks like the full spec for that Binary Compound File format will be published, instead of the field name.
scope_creep
You don't need to create/find special tools to work with MS compound documents. There are Win32 functions built in.
Sam
A: 

You might wanna check the swf file specification: http://www.adobe.com/devnet/swf/

Mohamed
I know the SWF spec is available, I'm more interested in the FLA format so that I can pre-populate scenes that our animators then need to work on.
Soviut
Well, I might be speculating here; But I think that this kind of things are something you have to pay for.sothink decompiler (http://www.swf-decompiler.com/) can decomplile a file into fla and flex ; I believe there is kind of an agreement between them and adobe for the fla file structure as I can't see it anywhere else.P.S.: I'm also interested in fla file structure as I'm sick of the flash's AS IDE and want to develop some tools I need to make my life easier :)
Mohamed
A: 

Although there is no official documentation, this guy tried at least in some primary analysis

The fla format | benjaminwolsey.de http://benjaminwolsey.de/node/49

Maksee