007 Nightfire

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
rileyinthevoid
Posts: 3
Joined: Tue Apr 07, 2020 10:47 pm

007 Nightfire

Post by rileyinthevoid »

Hey all,

I've been working on having a look through the files of 007 Nightfire lately and I've come across a few stumbling blocks that I need more help with.

So far I have:
  • Extracted files from the .ISO of the game
  • Found a .SYM file that has a lot of juicy data in it
  • Used QuickBMS to extract from .SPE / .VIV / .MUS files into individual components - (I have found some odd corruption in .ssh files (see attached images))
  • Verified that the .bnk files stored in \audio folders are as they say (including the .h headers to detail the content) - (Is there a know way to extract the audio to individual files? I have some what of a lead on this but wanted to ask!)
  • Used OTools to take the .o files stored in \skeleton folders to get skeleton data

However, I'm struggling to find ways to understand the following file types
  • .dat
  • .rel
  • .crp
  • .gal
  • .sfn
  • .bin

The .dat and .rel files I have found in both animation and model folders and the .crp files seem to more hidden in weapon or model folders.

The .bin files are eluding me as I have one in the root of the ISO which is ~700MB but trying to figure how this expands or how to read it (outside HxD) seems to be a bit confusing.

I've tried using strings hidden in files to get some clues, but I'm struggling to find answers for what any of these file types might be

Magic strings / clues I'm finding:
.gal
  • PS2 Metal Bin is an 86 byte attachment for a runtime structure. See SHAPE_metalbin

.dat
  • ELF file headers

.rel
  • __const int:::EAGLAnimationBuffer

.crp
  • PRACZ (first handful of bytes in the file according to HxD)
  • GIOT::dummy

.sfn
  • FNTS (first few bytes in the file)
  • EAGL240

I've also noticed people reference G359 a lot but in my files I'm finding G352 and G354, is this a version number or something less important? (Only found one reference online to G352 so far).

If it's a case these files are rather unknown, then I guess back to the old scripting, but if anyone has a lead on any of these, that'd be amazing.

I've even taken a bunch of the .ELF files (ACTION, BASE and DRIVING), into Ghidra (It's worked so well), hell in DRIVING.ELF (which I do have a SYM file for, I've been able to find things like "EAGLInternal::TARSharedData new[]")

Thank you and have a brilliant day!

~ r