搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

momusdigital/fnv_decomp

游戏

对《辐射:新维加斯》1.4.0.525 版逐函数逆向重建的字节级一致 C++ 源码,供 Mod 研究、开发与游戏保存使用。

119
18
C++
NOASSERTION
创建于 3 天前

项目介绍

这个仓库把 PC Steam 版《辐射:新维加斯》(版本 1.4.0.525)的可执行文件逐函数还原成 C++ 源码。build/units.json 中列出的每个函数,都要用游戏当年使用的微软编译器编译出与原版相同的字节。项目面向 Mod 社区,用于研究、Mod 开发与游戏保存。

仓库只包含源码:没有游戏资源、可执行文件或可玩内容,也不提供绕过 copy protection 的工具。构建得到的是供比对的目标文件,不是游戏。函数注释和不少命名由机器提出再经人工审阅,注释可能出错,最终以匹配的机器码为准。

当前状态报告为 70,611 个范围内函数和 11,537,067 字节范围内代码全部逐字节一致,见状态说明。

快速使用

需要一份合法持有的 PC 版 FNV 1.4.0.525(Steam app 22380,本体或 Ultimate Edition)、从自己副本取得的未加密可执行文件、Python 3.10 及以上,以及 README 指定的三套微软编译器:Visual C++ 2008 Express SP1、2008 原版和 Visual C++ 2005 SP1,见所需条件。Steam 安装后的可执行文件代码在磁盘上加密,不能直接用;仓库不提供可用的可执行文件,也不提供生成方法。

准备好编译器后,设置其路径并运行比对,见构建与比对:

export FNV_MSVC9_ROOT=/path/to/msvc9
export FNV_MSVC9_RTM_ROOT=/path/to/msvc9rtm
export FNV_MSVC8_ROOT=/path/to/msvc8
export FNV_MSVC9_PREFIX=/path/to/wineprefix   # not needed on Windows

python3 tools/build_and_match.py --image /path/to/your/FalloutNV.exe

程序先用手工选取的 SHA-256 指纹校验镜像,其他文件不会被处理。完整运行会编译约 2,988 个单元,最后给出匹配的函数与字节数以及不匹配列表。--only <text> 限定构建路径含指定文本的单元,--jobs N 设置并行编译数,--out results.json 写出逐单元结果。输出只是计数与差异列表,不是可运行的游戏。

参与贡献与审查

欢迎做可读性改进:重命名占位函数与变量、补充注释,但不能改变编译结果。每个 pull request 都会运行 match 自动检查,从 main 和改动版本分别编译受影响的单元并比较函数字节与重定位。检查通过且由最后推送者以外的两人批准才能合并;只改注释、空格或空行时无需构建即可通过,见贡献说明。工具、构建配方和工作流的改动由仓库所有者负责合并。任何游戏可执行文件、复制字节、目标文件或游戏数据都会被拒绝,见禁止提交游戏内容。

本地自检时先提交改动,为 main 和临时检出建立 worktree,再依次运行 tools/compare_builds.py plan、shard、report,见自行运行检查。

使用约束

  • 比对依赖精确的 1.4.0.525 可执行文件和三套指定编译器,其他版本或编译器构建不受支持。
  • 在 Linux 和 macOS 上,微软编译器需要借助 Wine 运行。README 给出了 Visual Studio 2008 与 Windows SDK 安装包的解包步骤,测试环境为 Ubuntu 24.04 加 Wine 9,见非 Windows 下的编译器。
  • 仓库本身不授予许可证,third_party/zlib-1.2.1 保留自己的许可证,见法律说明。
  • 使用者需自行持有游戏并遵守其许可条款。

HotRepo 点评

该仓库没有记录到全语言日榜名次,可用的站内信号有限。在 2026-11-02 的 C++ 新项目榜中,它以 113 星、16 个 fork 出现,在约一小时的统计窗口内新增 7 星、3 个 fork;采集到的两个按小时采样显示星数从 106 升到 113。这只是单日观测,不能说明趋势。技术上更值得注意的是完成度声明:项目称范围内所有函数和字节均匹配,贡献流程要求字节级检查加两人批准。判断这个项目时,这些事实比早期的星数更有参考价值。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。