Monthly Archives: January 2005

Automated Java De-obfuscation

If they value their intellectual property, responsible Java-developing software companies use some kind of code obfuscator as part of their build process. This way, there is very little chance that a Java class file will be unleashed that retains the original identifiers. One such Java source code obfuscator is called Retroguard. But can the tool be used for its opposite purpose?

As an aside, I need to point out some irony: I once took a Java course where the instructor claimed that Java is desirable to proprietary software outfits because it can be compiled, and IP implicitly guarded, whereas programs written in interpreted languages, notably Perl, need their source code redistributed. In fact, Java code is very trivial to decompile, whereas languages like Perl can be compiled for redistribution.

Continue reading

Game Formats On The Horizon

There are few things as discouraging in research as replicated work. You work for weeks or months or whatever in order to figure out a format, and then someone else publishes before you. To that end, I wanted to post a list of multimedia technologies that other people have RE’d. I am sitting on these and will eventually get them into the open multimedia projects:

  • proper VMD audio decoding for early Sierra games
  • Gremlin Digital Video (GDV) file demuxing and A/V decoding, used in such games as Realms of the Haunting, Normality, and Hardwar, and perhaps other titles developed by Gremlin
  • AVS files , used in Creature Shock by Argonaut software and published on various platforms; the AVS files were used in the PC and Sega Saturn versions, possibly others
  • TGV files used in various Origin games
  • EA MJPEG-like video coding format used in WVE/UVE files

Lara’s Escape

Games published under the Eidos umbrella, most famously the Tomb Raider series, are known you use .RPL files for their full motion video (FMV). RPL appears to be a reasonably open container format and the details are in this document. The specific video codec used in this format is closed. It is known as “Escape”, internally identified as codec #130. (The audio format is also not entirely clear, but it definitely appears to be an ADPCM variant.)

Continue reading