Skip to content

Instantly share code, notes, and snippets.

@wheremyfoodat
Last active July 21, 2025 21:54
Show Gist options
  • Save wheremyfoodat/35f89e0d8309afb3e8ec128540d57998 to your computer and use it in GitHub Desktop.
Save wheremyfoodat/35f89e0d8309afb3e8ec128540d57998 to your computer and use it in GitHub Desktop.
IDA Python script for loading debug symbol files for Burnout Paradise (PS3)
external_symbols = "/Users/Giorgos/Documents/MAP_EXTERNAL.bin" # **PATH TO YOUR MAP FILE GOES HERE**
internal_symbols = "/Users/Giorgos/Documents/MAP_INTERNAL.bin" # **PATH TO YOUR MAP FILE GOES HERE**
import struct
from idautils import *
from idaapi import *
def load_burnout_symbols(path):
with open(path, "rb") as file:
file.seek(0x10)
while (entry := file.read(0x80)):
name_bytes = entry[:0x78]
ptr_bytes = entry[0x78:0x7C]
flag_bytes = entry[0x7C:0x80]
name = name_bytes.split(b'\x00', 1)[0].decode('ascii', errors='ignore')
ptr = struct.unpack(">I", ptr_bytes)[0]
flags = struct.unpack(">I", flag_bytes)[0]
if idc.set_name(ptr, name, idc.SN_NOWARN) == 0:
print(f"Failed to map function {name}")
print(f"Name: {name}")
print(f"Address: 0x{ptr:08X}")
print(f"Flags: 0x{flags:08X}")
print("-" * 40)
if __name__ == "__main__":
load_burnout_symbols(external_symbols)
load_burnout_symbols(internal_symbols)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment