AD
Finder of things, Doer of stuff
So I figured out what I was doing wrong with one of the programs I was using. I was specifying the offset incorrectly. Anyway, do a search for "offset file unzipper" and you'll get the command line program as well as the uncompiled source. This program lets you both unzip each def chunk into a *.dat file which is just the straight code of the chuck or give you the location of the zlib chunks. You can also unpack the zlib chunks into one file.
When I run it on SPACE.IFF I get similar looking code to what HCl posted. Basically you use the '-a' option and specify the file you want, indicate your output directory... and then put in the offset for the first def chunk which is really easy to find using the VIFF tool. When you click on any individual chunk in the list in VIFF you will get a box showing that chunk's code. If the first three letters are DEF then record the offset that is in written in the top of the that particular window, else do a search for DEF in a hex editor.
Here's a sample of what I got when I ran it on a texture file:
When I run it on SPACE.IFF I get similar looking code to what HCl posted. Basically you use the '-a' option and specify the file you want, indicate your output directory... and then put in the offset for the first def chunk which is really easy to find using the VIFF tool. When you click on any individual chunk in the list in VIFF you will get a box showing that chunk's code. If the first three letters are DEF then record the offset that is in written in the top of the that particular window, else do a search for DEF in a hex editor.
Usage: [options] <input> <output/dir> <offset>
Options:
-s search for possible zip/gzip data in the input file, the scan starts
from the specified offset and finishs when something is found
the output field is ignored so you can use any name you want
-S as above but continues the scan (just like -a but without extraction)
-a unzip all the possible zip data found in the file. the output
directory where are unzipped the files is identified by <output>
all the output filenames contain the offset where they have been found
-A as above but without unzipping data, the output files will contain the
same original zipped data, just like a simple data dumper
-1 related to -a/-A, generates one unique output file instead of many
-m SIZE lets you to decide the length of the zip block to check if it is a
valid zip data. default is %d. use a higher value to reduce the number
of false positive or a smaller one (eg 16) to see small zip data too
-z NUM this option is needed to specify a windowBits value. If you don't find
zip data in a file (like a classical zip file) try to set it to -15
valid values go from -8 to -15 and from 8 to 15. Default is 15
-q quiet, all the verbose error messages will be suppressed
-r don't remove the invalid uncompressed files generated with -a and -A
Here's a sample of what I got when I ran it on a texture file: