// the find
radareorg/r2unity
Reverse engineer Unity games with radare2
A radare2 plugin and CLI for tearing apart Unity IL2CPP builds — it parses global-metadata.dat, cross-references it against the native binary, and surfaces managed types/methods/strings inside r2 or rabin2. Built for reverse engineers doing game analysis or modding, not general Unity devs.
Explicit, version-numbered format coverage (metadata v24.1-v35, v38/v39, SerializedFile v22, BGDatabase v6) instead of vague 'supports Unity' claims. Ships both a standalone CLI and native r2/rabin2 plugins, so you can script extraction or work interactively in the disassembler with the same metadata parser underneath. Goes past the obvious metadata dump into resource extraction (.resS/.resource streams), P/Invoke recovery, and CycloneDX SBOM generation — useful for dependency auditing, not just RE.
The README's own 'Current Limits' section admits v24.0, v36/v37 metadata, and WebAssembly builds aren't handled — gaps that will bite anyone targeting recent WebGL exports or slightly-off metadata versions. Method pointer recovery depends on finding CodeRegistration symbols or a section-scan fallback; there's no manual pointer override path yet, so stripped binaries where detection fails leave you stuck. SBOM output is managed-assembly-only (no native library hashes), and P/Invoke/reverse-P/Invoke recovery is metadata-first, meaning native wrapper addresses are often missing. At 38 stars with a narrow single-purpose scope, expect slower community-driven fixes for new Unity metadata versions as they ship.