Data compression formats

I'm interested in data compression algorithms and file formats. In particular, I like to reverse engineer proprietary, unknown file formats and make decompressors which allow anyone to unpack these formats. My work includes:

  • XAD clients and XFD slaves: XAD and XFD are both excellent Amiga decompression libraries. XFD handles compressed executables and data files, XAD handles disk and file archives. Between them, they handle thousands of compression formats. I have written many decompressors for both libraries.
  • libmspack is a library which intends to offer compressors and decompressors for the following Microsoft file formats formats: CAB, CHM, HLP, LIT, SZDD and KWAJ.
  • cabextract is a popular UNIX program for decompressing Microsoft Cabinet files. cabextract's decompression routines form the basis of the libmspack CAB decompressor.
  • Convert .LIT is a program, written by an anonymous author and hosted here, which allows people to decode Microsoft eBook (LIT) files into their original HTML. Convert LIT's decompression and decryption routines will form the basis of the libmspack LIT decoder.
  • DeliDecrunch is an XFD/XAD enabled drop-in replacement for the standard DeliTracker Decrunch genie. It allows Amiga users to play music straight from compressed files and archives. Because it uses XFD and XAD, it supports hundreds more formats than the original Decrunch genie.
  • ppcrack is a portable program that decrypts or unpacks PowerPacker files, without any need for a password. On a modern PC, it takes a couple of minutes. ppcrack also comes with a tool called ppsimilar, which will give you the correct decryption key immediately, should you have an unencrypted PowerPacked file which "similar" enough to the encrypted one. There is a set of benchmarking and test files for people volunteering to port ppcrack to other platforms.
  • Finally, some programs which don't fit in anywhere else:
    • ixadump extracts the files in an iXalance demo, which is an OS independent demo loader system written by The Black Lotus (TBL).
    • uncps unpacks .CPS files from many games, including the SSI games "Eye of the Beholder" and "Eye of the Beholder II", Westwood Studios' "Command and Conquer" and the Legend of Kyrandia series.
    • uncpt unpacks Sinclair QL .CPT files, created with the CPT tool written in 1989 by Sander Plomp. This is not the Apple Macintosh "Compact" or "Compact Pro" format by Bill Goodman. The original CPT and UNCPT tools came with these instructions. You can find some CPT-encoded files here. Sander also wrote an archiver called QARC, but I have not yet looked at that. For a start, I can't find any QARC encoded files.