Shockwave (Director)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Identifiers)
("See also" to Lingo bytecode)
Line 53: Line 53:
 
* [https://gist.github.com/TheCjw/b21d82dfe43107c58a6f Adobe Shockwave - A case study on memory disclosure] - This contains some useful specifics on the format, specifically for the purposes of building a security exploit.
 
* [https://gist.github.com/TheCjw/b21d82dfe43107c58a6f Adobe Shockwave - A case study on memory disclosure] - This contains some useful specifics on the format, specifically for the purposes of building a security exploit.
 
* https://zenhax.com/viewtopic.php?t=252 - A thread on a game reverse engineering forum discussing the DCR format
 
* https://zenhax.com/viewtopic.php?t=252 - A thread on a game reverse engineering forum discussing the DCR format
 +
 +
== See Also ==
 +
* [[Lingo bytecode]], used in compiled Shockwave files
  
 
== Editors' notes ==
 
== Editors' notes ==

Revision as of 08:35, 9 October 2020

File Format
Name Shockwave (Director)
Ontology
Extension(s) .dcr, .dir, .dxr, .cct, .cst, .cxt, .drx
MIME Type(s) application/x-director
PRONOM x-fmt/341, fmt/317, fmt/486
Type Code FGDM
Released ≤1995
For Shockwave Flash, see SWF.

Shockwave is a platform and format for multimedia applications, video games, etc. It was owned by Macromedia during most of its formative years, and is now owned by Adobe. It has many names, most of which involve permutations of the words "Macromedia", "Adobe", "Shockwave", and "Director". Director is the application usually used to develop it. It is distinct from SWF (Flash).

The format seems to be based on the RIFX metaformat, though some DCR files are not[1] actually valid RIFX files.

It might be that the DCR files don't work as valid RIFX files due to DEFLATE compression being used on some sections of the file using an undetermined scheme. Presumably a correct application of INFLATE would yield a valid file. AN old oreilly[2] book reveals that this compression and decompression step used to be done by a Director Xtra plugin called "afterburner" before it was a built in feature. Afterburner is available on some mac abandonware sites.

Shockwave also has a plugin system called "xtras" which may complicate the correct interpretation of some files in the future.

Contents

Identifiers

File extensions:

  • .DIR = Director file (holds an editable project)
  • .DRX = Macintosh version of the Director file (Contains a MV93 RIFX chunk)
  • .DXR = Protected (i.e., read-only) Director file
  • .DCR = Shockwave (compiled/published) version of DIR; the normal format for distribution of Shockwave applications outside of the organization where they were made.

Cast Formats

One major element of Shockwave is "cast members", objects that can have scripts and other resources attached to them. These can be bundled together into a "cast" file for modularity.

File extensions:

  • .CST = Editable Director cast
  • .CXT = Protected (read-only) Director cast
  • .CCT = Shockwave (compiled/published) cast; to be loaded after a reference by (presumably) a DCR file

Sources: [3] [4] [5]

Software

  • http://aluigi.org/papers/bms/shockwave.bms - (direct download) A script for QuickBMS roughly describing how to apply decompression to a DCR file.
  • Movie-Restorer-Xtra - "allows Director to open and save Protected and Compressed Movie Files"
  • Recover-CCT - "recovers" protected movie and case files
  • drxextract - "Script to extract contents from Macromedia Director 4.0 and 5.0 DRX files... [a]lso can extract contents from 'updated' Macromedia Director DRI files"
  • D4Player - Open-source player for Shockwave 4 files
  • ScummVM - Open-source player (extent of support unknown)

Sample files

Links

See Also

Editors' notes

The PRONOM database claims that the PC version of Director creates files that begin with "RIFX" (i.e. big-endian), and the Macintosh version creates files that begin with "XFIR" (little-endian). This seems backwards. Either PRONOM is wrong, or something else is going on here.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox