[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81944":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":15,"stars30d":16,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":13,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":13,"starSnapshotCount":13,"syncStatus":16,"lastSyncTime":27,"discoverSource":28},81944,"r2unity","radareorg\u002Fr2unity","radareorg","Reverse engineer Unity games with radare2","https:\u002F\u002Fwww.radare.org\u002F",null,"C",24,0,22,1,2,"MIT License",false,"main",[21,22,23],"il2cpp","reverse-engineering","unity","2026-06-12 02:04:21","# r2unity\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fradareorg\u002Fr2unity\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fradareorg\u002Fr2unity\u002Factions\u002Fworkflows\u002Fci.yml)\n\n\u003Cimg src=\"r2unity.png\" alt=\"r2unity logo\" width=\"140px\" height=\"140px\" align=\"left\">\n\n`r2unity` is a command-line tool and radare2 plugin set for inspecting Unity\nIL2CPP builds. It parses `global-metadata.dat`, correlates it with the native\nIL2CPP binary, and exposes managed metadata for reverse engineering.\n\n## Highlights\n\n- Parses IL2CPP metadata wire versions v24.1+ through v35, plus v38\u002Fv39\n  metadata used by recent Unity 6 builds.\n- Detects companion files for iOS, Android extracted APKs, macOS, Windows,\n  Linux, and flat fixture layouts.\n- Recovers managed images, assemblies, types, methods, method flags, and `ldstr`\n  string literals.\n- Finds method-pointer tables heuristically in ELF, Mach-O, and PE binaries.\n- Lists P\u002FInvoke and v29+ reverse-P\u002FInvoke metadata, and emits CycloneDX 1.5\n  SBOMs for managed assemblies.\n- Provides both a core r2 command plugin and an `r_bin` plugin for direct\n  `global-metadata.dat` inspection.\n\n## Build\n\n`r2unity` requires radare2 development files available through `pkg-config`.\n\n```sh\nmake\nmake plugin\nmake user-install\n```\n\nOr with Meson:\n\n```sh\nmeson setup build\nmeson compile -C build\nmeson install -C build\n```\n\nMost users can install it through r2pm:\n\n```sh\nr2pm -ci r2unity\n```\n\n`make` builds the CLI. `make plugin` builds `core_r2unity` and `bin_r2unity`.\n`make user-install` installs both the CLI and plugins for the current user.\nMeson builds the CLI by default, matching `make`. Use `-Dplugins=enabled` to\nbuild the radare2 plugins too, or `-Dr2_plugindir=\u002Fpath\u002Fto\u002Fplugins` to override\nthe plugin install directory.\n\n## CLI\n\nThe normal inputs are the native IL2CPP binary and the matching\n`global-metadata.dat`.\n\n```sh\n# detect companion files and platform\n.\u002Fr2unity -D \u002Fpath\u002Fto\u002Funity-build\n\n# compact metadata summary\n.\u002Fr2unity -j \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat\n\n# recover method flags\u002Fcomments as r2 commands\n.\u002Fr2unity -f \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat > methods.r2\n\n# list managed strings, interop metadata, or managed-assembly SBOM data\n.\u002Fr2unity -z \u002Fpath\u002Fto\u002Fglobal-metadata.dat\n.\u002Fr2unity -P -j \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat\n.\u002Fr2unity -R -j \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat\n.\u002Fr2unity -S \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat > sbom.txt\n.\u002Fr2unity -S -j \u002Fpath\u002Fto\u002FGameAssembly.dll \u002Fpath\u002Fto\u002Fglobal-metadata.dat > sbom.json\n```\n\n## radare2\n\nAfter installing the plugins, open a Unity binary in r2 and use:\n\n```text\nr2unity?       show help\nr2unity-D      detect and cache companion file paths\nr2unity-i[j]   show metadata summary\nr2unity-s      apply managed method flags\u002Fcomments\nr2unity-s*     print the r2 commands instead of applying them\nr2unity-z[j]   list managed string literals\nr2unity-P[*j]  list P\u002FInvoke entries\nr2unity-R[*j]  list reverse-P\u002FInvoke entries\nr2unity-S      emit managed-assembly SBOM text summary\nr2unity-Sj     emit managed-assembly CycloneDX JSON\n```\n\nSet `r2unity.metadata` and `r2unity.library` manually when auto-detection is not\nenough. The `bin_r2unity` plugin also lets radare2\u002Frabin2 treat\n`global-metadata.dat` as a binary format, exposing sections, strings, symbols,\nclasses, imports, libraries, and header fields.\n\n## Current Limits\n\n- v24.0 metadata, v36\u002Fv37 metadata, and WebAssembly are not supported.\n- Method-pointer recovery is heuristic; manual `-a` \u002F `-c` pointer reads are\n  not implemented yet.\n- P\u002FInvoke and reverse-P\u002FInvoke output is metadata-first and does not fully\n  recover native wrapper addresses or every `DllImportAttribute` detail.\n- SBOM output covers managed assemblies only, not native dependencies or file\n  hashes.\n\nDeep technical notes live in `doc\u002F`.\n","r2unity 是一个用于逆向工程 Unity 游戏的命令行工具和 radare2 插件集。它能够解析 IL2CPP 生成的 `global-metadata.dat` 文件，将其与原生 IL2CPP 二进制文件关联，并提供托管元数据以供逆向分析。该项目支持多种平台上的 IL2CPP 元数据版本解析（v24.1+ 至 v35 及 v38\u002Fv39），并能恢复托管图像、程序集、类型、方法及其标志等信息。此外，它还具备检测跨平台文件、提取方法指针表以及列出 P\u002FInvoke 和反向 P\u002FInvoke 元数据的功能。适用于安全研究人员、游戏开发者或任何需要深入了解 Unity 游戏内部结构的场景。","2026-06-11 04:07:16","CREATED_QUERY"]