案例

C2C:《古惑狼 2》的混合重编译与手工反编译

一个早期的 PlayStation《古惑狼 2》逆向工程项目:把引擎的 MIPS 机器码直接转换为一个体量巨大的 C 文件,并调用改造后的 PCSX-R 模拟器库处理硬件 I/O。转换出的函数计划逐个手工反编译为普通 C 代码,逐步替换机械转换的部分。

使用条件与局限

  • 运行需要用户自有的 PAL 版《古惑狼 2》光盘原始 BIN 镜像(含完整扇区头)及该光盘中的 SCES_009.67 可执行文件,另需第三方 PlayStation 模拟器的 GPU、SPU 和两个手柄插件,以及一个 128 KB 记忆卡文件;仓库不附带游戏数据。
  • 仅支持 Windows:主程序在 Cygwin 下使用 GNU Make、GCC 和 SDL2 构建,模拟器库需要 Microsoft Visual C++ 2005 或更高版本,可选的 C# 反汇编器需要 Visual C# 2005 或更高版本。develop 分支的开发集中在 2015 年 1 月至 4 月,没有发布版本。
  • README 警告该软件不适合日常使用,也未报告可游玩程度。其转换器几乎不做反编译,也不解析间接跳转或跳转表,因此代码区域须手工列出;docs/FUNCTIONS.md 在列出的 818 个函数入口中仅为 18 个命名。
  • 项目未公布字节一致或等价性检查,本合集也未构建或运行。仓库没有许可证文件;源自 PCSX-R 的模拟器源码带有 GPL-2.0 或更高版本的文件头,原游戏保留各自权利。所审来源未记录 REA 或 AI 参与。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · ughman/c2c · 修订 2e9535f
  2. docs/FUNCTIONS.md GitHub · ughman/c2c · 修订 2e9535f
  3. srcdisasm/Main.cs GitHub · ughman/c2c · 修订 2e9535f
  4. srcemu/gte.c GitHub · ughman/c2c · 修订 2e9535f
  5. Makefile GitHub · ughman/c2c · 修订 2e9535f
  6. srczz GitHub · ughman/c2c · 修订 2e9535f