UTOC
application/octet-stream
Magic Bytes
Offset: 0
2D 3D 3D 2D 2D 3D 3D 2D 2D 3D 3D 2D 2D 3D 3D 2D
The Universal Table of Contents (UTOC) is a metadata index format developed by Epic Games for the Unreal Engine 5 Zen Store. This format serves as a mapping directory to help the engine locate and stream assets stored within corresponding UCAS container files during gameplay. Because these files contain structural data rather than executable code, they are considered safe, though they are proprietary and primarily used for large-scale video game data management.
Validation Code
How to validate .utoc files in Python
Python
def is_utoc(file_path: str) -> bool:
"""Check if file is a valid UTOC by magic bytes."""
signature = bytes([0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D])
with open(file_path, "rb") as f:
return f.read(16) == signature
How to validate .utoc files in Node.js
Node.js
function isUTOC(buffer: Buffer): boolean {
const signature = Buffer.from([0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D]);
return buffer.subarray(0, 16).equals(signature);
}
Go
func IsUTOC(data []byte) bool {
signature := []byte{0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D, 0x2D, 0x3D, 0x3D, 0x2D}
if len(data) < 16 {
return false
}
return bytes.Equal(data[:16], signature)
}
API Endpoint
GET
/api/v1/utoc
curl https://filesignature.org/api/v1/utoc