Ok, every field of the .VPK file format is figured out, and my decompressor is finished
The last block of the file is the filenames. It starts with an unsigned long for the length of the filename block (not that that isn't already known if you can get that lol) and then there's an unsigned long for the number of filenames. Each filename entry has 3 unsigned longs at the beginning. The first is the block_start (this is an offset into the file... add 4 bytes to this to find the beginning of the compressed area), the second is the length of the still-compressed block, and the third is the length of the filename. After this is the filename.
My decryptor script is updated (
http://home.archshadow.com/~daeken/decompress.py)
To use it now, python decompress.py data_file.vpk directory_to_output_to
It'll generate all the directories that are needed.
Enjoy!
Happy Hacking,
Lord Daeken M. BlackBlade
(Cody W. Brocious)