1. Abstract Test Drive Unlimited 2 (TDU2) stores its game assets (models, textures, sounds, scripts) within proprietary archive formats. The primary format is *.big files (a generic container also seen in other Atari/Eden Games titles). This report details the reverse engineering process and implementation of an unpacker capable of extracting these files. 2. File Format Analysis (Bigfile Format) Initial analysis via hex dump reveals a standard structure: Header, Index Table, and Data Blocks. 2.1. Header Structure (First 256 bytes) The header is 0x100 bytes long and lacks a traditional magic number (e.g., "BIGF") but contains a version identifier and table offsets.
def parse_header(self): self.handle.seek(0x08) self.index_offset = struct.unpack('<Q', self.handle.read(8))[0] self.file_count = struct.unpack('<Q', self.handle.read(8))[0] tdu2 unpacker
| Offset | Size | Type | Description | |--------|------|------|-------------| | 0x00 | 4 | uint32 | Unknown Magic (0x00020000 for TDU2) | | 0x04 | 4 | uint32 | Version (0x00000011 = 17) | | 0x08 | 8 | uint64 | Index Table Offset (usually 0x100) | | 0x10 | 8 | uint64 | Index Table Size (entries) | | 0x18 | 8 | uint64 | File Count | | 0x28 | 4 | uint32 | String Table Offset | | 0x2C | 4 | uint32 | String Table Size | Each file is represented by a 0x40-byte entry. This report details the reverse engineering process and
Contact Form
Sending your message. Please wait...
Thanks for sending your message! We'll get back to you shortly.
There was a problem sending your message. Please try again.
Please complete all the fields in the form before sending.