在 GitHub 上加星Star2.4k 个星标

逆向工程资源集合

逆向工程案例合集

第 5/21 页,第 801–1,000 个案例。从 5,191 项精选资源中筛选出的 4,025 个案例,保留重建方法、成果边界与原始证据,并按网站、游戏、应用等目标分组,可逐条打开条目查看来源与复核日期。

软件重建产物评审

核查 REA 工作流与独立重建的实际产物,每项保留原始来源和已知局限。

复现范围
已实现功能、已知缺口及必需的原始素材。
产物入口
原始代码、发布包或演示。
证据与归因
固定来源、复核日期与 REA 的实际角色。
关于这些案例

每个案例按主要用途出现一次,并保留所有目标标签。

第 801–1,000 个案例,共 4,025 个

游戏

2832 个案例

全部主题

非匹配反编译

343 个案例

Lufia2Decomp 将《Lufia II: Rise of the Sinistrals》的游戏逻辑重建为可移植 C 库,供 SNES 重编译项目使用。CPU 状态与内存适配层保留函数的可观察行为,资源工具可解码用户 ROM 中的压缩数据。作者报告 2,305 个函数通过原版 ROM 差分检查并标记为已验证。

prsche-disasm 从 Windows x86 二进制恢复 Need for Speed: Porsche Unleashed 的 C/C++ 源码,索引原始模块与地址,研究资源格式,并用原程序的输入、状态、输出及 ABI 行为比较已恢复函数。现有 C++ 模块可分别构建,但完整游戏尚未链接成可玩的程序。

nfsu2_decomp 将 PS2 PAL 版《Need for Speed: Underground 2》的逻辑改写为 Linux 原生 C++,运行时读取用户的游戏光盘数据。它以 OpenGL 和 SDL2 替代主机图形、音频路径,读取 ZDIR.BIN 与 ZZDATA 归档,并记录车辆物理和文件解码的逆向结果。项目将当前版本称为可玩的原型。

OpenHuey 把 2005 年 PlayStation 2 游戏《Haunting Ground》(SLUS_210.75)重建到 PC。可执行文件的 SHA-1 为 e0867d2ec83e6e2fccf147ad9e645a9a662d1c15。C 反编译按功能核对,而不是逐字节匹配。openhuey 程序可以玩剧情、房间、过场、道具、菜单、存档、结局和 Hewie 小游戏。

将 Atari 1978 年的 Atari 2600 游戏 Outlaw 逆向重建为带注释、可用 DASM 编译的 6502 源码。已命名的 RAM 变量涵盖背景数组、比分、每把枪的剩余子弹、音效状态和障碍物位置;注释代码依次说明了比分与弹匣显示、每四行一组的主显示内核、换弹、选择键处理、移动以及子弹反弹。

该项目以 C++ 重构 OutRun 2006 Coast 2 Coast 的 PC 可执行代码,并移植到 Switch、Apple silicon macOS、PS5 自制软件环境及 Xbox 开发者模式。部分函数仍由 x86 翻译,其余由人工编写;各平台分别实现图形、声音、输入和文件接口,并读取用户 Steam 安装中的游戏数据。

将 Bloodborne PS4 可执行文件(CUSA03173,含 1.09 更新)的代码逐个函数改写为可读的 C++,目标是在项目以净室方式自行编写的运行时上实现原生 PC 源码移植。它追求功能等价而非字节一致:每个替换函数都以钩子接入,在录制与生成的输入上与原始机器码对照比较,再经独立审核。项目仍处早期:README 报告 157,757 个函数中已验证 21 个,游戏尚不能在 Paleblood 自己的运行时上运行。

Activision 1982 年的 Atari VCS 游戏 Pitfall! 被反汇编为带标签和注释的 6502 汇编(v0.9)。注释解释了可逆 LFSR 如何生成 255 个丛林场景、随机数各比特如何决定地面物体、场景类型、树木图案和墙的位置,以及九段式显示内核如何绘制 Harry、藤蔓、坑洞、梯子和墙;汇编开关可启用可选优化、屏保代码和练习模式。

该项目重建 Nintendo 3DS 欧版《精灵宝可梦 月亮》的基础发行版。标题 ID 是 0004000000175E00,产品代码是 CTR-P-BNEA,标题版本 0。零售版 code.bin 的 SHA-256 是 fbe0ce6da21542542f49645fff78ba1b7e5e7cc172ce4daceeb5c26ab54adba1。零售版 static.crs 的 SHA-256 是 e18db06b0609739e8e62cd4786c6b2da838d20347050e4c2ac822bf35c016957。清单列出 18,945 个函数中的 2,984 个已有源码,其中 298 个是精确的 ARM 匹配。

以开源的替代可执行文件重新实现 Oddworld: Abe’s Oddysee 与 Abe’s Exoddus 的引擎,在使用者自己的游戏目录中运行。团队先反编译原版可执行文件并逐步替换其中的函数,借助注入的 DLL 将重新实现的代码挂接到打过补丁的零售版程序中,之后再把成果改写为独立的跨平台引擎。项目网站称两款游戏均可完整通关,并修复了缺陷,支持窗口模式、高分辨率和手柄游玩。

以 PopCap 开源的 SexyAppFramework 为基础重建 Plants vs. Zombies 的 C++ 源码:起点是社区早先对 0.9.9 版的反编译,再补入从年度版(GOTY)逆向得到的功能,并以 GOTY 版地址标注函数。项目同时以现代 C++ 改造引擎,并正将 DirectDraw 与 Direct3D 7 渲染器替换为 GLFW。它构建出在原版游戏目录中运行的同人可执行文件,目标是现代化、可扩展的游戏,而不是完全一致的二进制。

这份带标签和注释的 6502 汇编清单重建了 1981 年的 Atari 2600 多精灵演示程序 Red vs. Blue,该程序后来发展为 RealSports Football。清单标注了垂直同步与定时循环、绘制红蓝两色动画球员的显示内核、八帧球员动画图形,以及水平定位和精灵复制表。注释还指出其中一个帧计时计数器对动画速度并无影响。

ReFreedomFighters 重建 Freedom Fighters 的文件格式与 PC 可执行文件函数,提供音频、纹理、脚本、场景和寻路数据的 Python 解码器,也收录 C++ 函数移植及专用逆向工具。作者报告公开了 12,703 个与原版对照测试的函数,同时记录了校验器缺陷和待复核结果。

Resident Evil 1 for PC Decompilation 根据 1997 年 PC 版可执行文件的 Ghidra 分析重建游戏逻辑,并在 Windows 与 Linux 上运行。移植版以 Direct3D 11 或 OpenGL 渲染后端及相应的音频、视频适配层替换原 Marni System 的 DirectX 5 实现。作者报告游戏全程可玩,且已实现 1,717 个游戏逻辑函数中的 1,716 个。

Activision 1982 年的 Atari VCS 游戏 River Raid 被反汇编为带标签和注释的 6502 汇编(v0.9)。注释说明了由 16 个块组成、以桥梁收尾的河段如何随机生成,每个块如何放置一个油箱、敌人或房屋,重复十二次的双行显示内核如何绘制每个 32 条扫描线高的块并只用硬件碰撞寄存器检测碰撞,以及分数如何直接存放在显示指针中;汇编开关可加入屏保代码和练习模式。

重建 Retro Engine v3,即 2011 年 Sonic CD 重制版所用的引擎,作为可在 Windows、Linux、macOS 和 Android 上运行的原生 C++ 源码移植。引擎运行官方发行版中的游戏脚本和素材,仓库本身不附带这些内容;项目还加入了模组加载器、可重映射按键的设置文件、对移动版更新脚本的支持,以及更多开发者菜单调试快捷键。其许可证称代码大多在功能上与原作相同,而不是逐字节一致;同一团队的 RSDKv5 反编译另作独立案例收录。

反编译 Retro Engine(RSDK)v4——《索尼克》与《索尼克 2》(2013)所用的引擎——以及两款游戏中以原生代码实现的菜单,可构建 Windows、Linux 与 Android 版本。引擎运行官方发行版数据文件中的游戏脚本,这些文件需由使用者自备。项目增加了脚本编译器、模组加载器,以及《索尼克 2》双人对战的实验性联网模式;它是同一团队 RSDKv5 反编译项目的前身。

重建 Retro Engine(RSDK)v5 及 v5 Ultimate 运行时,即运行《索尼克狂欢》游戏代码的引擎,可构建 Windows、Linux、Switch 和 Android 版本。RSDKv5U 还能运行 RSDKv3 与 RSDKv4 游戏,例如 Sonic CD 和 Sonic 1 & 2。项目增加了模组加载器、着色器编译器和额外的 Windows 后端,且不附带任何游戏数据。

sead 反编译任天堂 EAD(现为 EPD)开发的引擎和库,这些代码出现在《新超级马力欧兄弟 U》和其他游戏中。README 把 engine/ 描述为标准库,把 nw_ptcl 描述为 NintendoWareForCafe Eft 的包装,把 agl 描述为图形库。它写明没有 NSMBU 的编译器版本就无法做到逐字节重建,当前目标是功能和效率与原版相当。

shadowheartsdecompilation 为 PS2 游戏 Shadow Hearts 的核心运行时类重建 C++ 源码,涵盖 CThread、CTimer、CPoller、CPolling、CPolObj、CDrawObj、CDrawPolling、CDraw、CApp、CPause、FVector 和 Matrix。每个方法都注明其在原可执行文件中的地址,代码直接调用 Emotion Engine 内核接口和硬件定时器寄存器。

skcollectioncport 把 Windows 游戏 Sonic & Knuckles Collection 重建为 C/C++ 源码,涵盖玩家与角色对象、各关卡对象、游戏/开场/选关模式、存档、碰撞与卷轴、地图和精灵图案表,以及按原地址从 PC 可执行文件反编译出的 Win32 前端,包括软件 VDP 渲染、声音、注册表和手柄处理。

SMB Vanilla 以 C 语言重建《超级马力欧兄弟》和日版《超级马力欧兄弟 2》的玩法。程序从用户提供的 ROM 读取关卡和图像数据,目标是保留原版行为及多种漏洞。作者称两款游戏均可通关;Ghidra 生成代码的整理、测试及部分音频仍未完成。

SMBDIS.ASM 以约 16,000 行的单个注释 6502 汇编文件重建 NES 游戏《超级马力欧兄弟》。文件为 PPU、APU、手柄寄存器和游戏 RAM 变量命名,注释了音效引擎、玩家移动和敌人处理等例程,并整理出 metatile 图形表以及关卡、敌人对象、区域对象和音乐数据;用户补上 CHR ROM 数据和 iNES 文件头后,可用 x816 汇编。

以 C 重建《索尼克狂欢》的游戏代码,并与另行反编译的 RSDKv5 或 RSDKv5U 引擎一起构建,支持 Windows、Linux、Switch 和 Android。素材必须来自官方发行的 Sonic Mania (Plus);项目加入了模组加载器,并可构建多个零售版本。其许可证称代码大多在功能上与原作相同,而不是逐字节一致。

SPEED RE 以 PC 版 Need for Speed Underground 2 v1.2 为参照,重建 SPEED 引擎函数。项目记录已恢复的物理、碰撞、摄像机和 HUD 代码,对部分函数进行字节比对或有限范围的执行比较,并用用户安装的游戏数据运行尚未完成的 Linux 驾驶演示版。

这是《星际火狐大冒险》调试版的进行中反编译,版本 GSAP01,文件 default.dol。README 写明该文件在 Interactive Multi-Game Demo Disc - July 2002(美国)上,并且未被使用。它是为内部调试环境构建的,会写入用于调试跟踪的地址,并期望固定地址上有一块 RGBA 帧缓冲。README 写明这些代码很可能还不能编译,而且这个构建在主机或模拟器上不能启动。

用 DiStella v2.0 反汇编 Activision 1982 年的 Atari 2600 游戏 Starmaster,再经手工分析、命名和注释整理为可读的 6502 源码。命名常量描述了 6x6 星区地图、星际基地、敌人编号、星空、曲速与激光时长以及敌方射击距离;OPTIMIZE 开关可换入作者在研究各例程时发现的改进写法。

Street Fighter Alpha 3 MAX: Decomp 将 PSP 游戏函数逐步重建为可读的 C 代码,并放入原生 PC 运行环境。尚未反编译的函数在构建时由 PSP 程序翻译生成,一致性测试逐帧比较部分运行场景。作者报告已有 14,881 个函数中的 412 个完成反编译;程序和资源来自用户的美版 ULUS-10062 光盘。

以 C++ 重建 System 3 出品、1990 年 Amiga 版的 The Last Ninja Remix,游戏数据从用户自备的原版 ADF 磁盘镜像读取。源码包含 ADF 磁盘读取、角色、敌人、房间、关卡与 HUD 代码,所复现的例程和变量沿用 sub_46A2、word_14D6 等反汇编标签。第一关可以通关。

作者的 REA 分叉(发帖时名为 rea-engine,后更名为 RE-Agent)反编译 GPL 许可的 TicTacToe-AI 游戏所发布的 .NET 可执行文件,重新编译恢复出的 C# 与资源,并依据原始 IL 修复一处反编译错误。差分探针在一个状态判定方法的全部 19,683 种棋盘赋值上运行原版与重建代码,并比较六张窗体渲染图。报告只判定该方法通过,整个游戏仍属部分重建。

wotwdecomp 以 C++ 和汇编重建 GameCube 游戏《Tom and Jerry: War of the Whiskers》,并构建指定哈希的 main.dol。Makefile 组合已重建函数、剩余汇编和 GameCube 工具链。作者指出硬编码指针尚未全部解析,当前无法移动代码布局以进行一般改动。

该项目用 Hex-Rays 和 IDA Pro 重建 Bullfrog 1994 年 DOS 游戏 Tube 的源码。结果用 SDL2 做成 32 位程序。Windows 用 build_windows.bat,Linux 用 build_linux.sh,网页构建用 build_web.bat。README 还列出 OpenWatcom 1.9 用于 DOS DPMI 构建。它写明原始代码使用 32 位指针,所以这棵源码树不能编成 64 位。

TWD · Source Recovery 将《The Walking Dead: Season One》的部分函数重建为 C++,供实验性混合运行环境使用。仓库提供几何、哈希和符号相关代码,以及比较测试、分析脚本和进度报告。作者报告已替换识别出的 18,299 个函数中的 14 个;独立源码引擎仍未完成。

作者使用固定版本的 REA 与 Ghidra,分析使用者自备的《宝可梦 究极之日》基础版可执行文件,由拆分出的对象逐字节重建该文件,并替换进两个编译后的小型 C 运行时例程。两处替换均经行为测试但与原字节不一致,其余字节均保持原样;同一段录制输入在 Azahar 模拟器中让原版与混合构建到达相同的卧室移动场景。零售编译器识别、精确匹配、模块加载及更广泛的游戏行为仍待解决。

将 Coleco 的 Atari 2600 游戏 Venture 逆向重建为带注释的 6502 源码,并给出可生成清单、符号表和二进制文件的 DASM 构建命令。注释说明了房间的绘制区域、移动墙房间中的精灵分时复用、怪物状态值、射程、碰撞处理以及各房间的背景偏移,所有图形数据表都附有像素示意注释;另标出两个原代码未使用的 RAM 字节。

将 Virtua Fighter 2 Version 2.1 的 Sega Model 2A i960 程序恢复为可移植、非一致性的 C17 代码,每条恢复路径须在受控边界上与参考 i960 执行器一致才被接受。仓库还提供 ROM 校验、i960 与 68000 分析工具、有限范围的 Model 2A 硬件模型,以及基于快照的差分运行器。README 说明它尚不是可游玩的移植;对战流程、格斗、物理、AI、光栅化及大部分音频仍未完成。

Virtua Tennis decomp 从用户提供的 Dreamcast 光盘重建游戏可执行文件,先建立逐字节匹配的汇编基线,再逐步以 C 代码替换游戏函数。工具还生成函数测试,以及模型、纹理、文本和音频的资源映射。作者报告所有可用 C 表达的函数均已有 C 代码,并以行为等价作为完成标准。

将 Wii U 美版《塞尔达传说 风之杖 HD》逐个函数反编译为 zeldaret/tww 风格的可读 C++,并让每个函数与由使用者自有副本静态重编译得到的原版函数并排运行,在生成输入和录制输入上比较返回值、内存写入和函数调用,同时检查覆盖率并进行变异测试。README 报告游戏 39,713 个函数中已有 28,244 个通过验证,其中来自 GameCube 版的 22,215 个函数里有 22,068 个。代码通过地址调用尚未反编译的函数,因此只能在 ZeldaWWHDRecomp 移植中运行,不能单独构建成游戏。

WinFish 从 Windows 可执行文件反编译《Insaniquarium Deluxe》1.1。README 写明结果可以完整游玩,但仍有错误。解决方案 WinFish.sln 使用 Visual Studio 2022 的 v142 工具集。32 位构建需要原版游戏里的 bass.dll,以及复制到解决方案旁边的 data、properties 和 fishsongs 文件夹。

↑↓ 移动↵ 打开⌘↵ 新标签页