rrika/cdcEngineDXHR

GitHub: rrika/cdcEngineDXHR

对《杀出重围:人类革命》游戏引擎进行 IDA Pro 反编译并手动重建为可编译的 C++ 源码项目。

Stars: 300 | Forks: 13

# 欢迎 ![截图](/res/screenshot2.webp) 这里的代码是使用 IDA Pro 反编译,并经过手动清理、去内联以及重写为使用模板的版本。这不是匹配式反编译,也没有任何工作流能将这里的函数与二进制文件中的函数合并。该 .exe 包含作为 RTTI 一部分的类名(参见 objtree.txt),但并没有源代码泄露。不过,《古墓丽影》(2013)曾发生过一次*调试信息泄露*。这是一款不同的游戏,但使用了相似的引擎。这些调试信息包含: - 文件名和行号 - 函数和类名 - 函数签名(参数和返回类型) - struct 布局(包括继承和模板名称) 第一个整合《古墓丽影》信息的提交日期为 2022 年 7 月 14 日。某些部分与《古墓丽影》并不对应,例如 'camera'、'input' 或 'postprocessing' 子目录下的所有内容。 # 如何构建(在 Linux 上构建 Linux 32 位二进制文件) 此构建通过 [dxvk-native](https://github.com/Joshua-Ashton/dxvk-native) 项目使用 DirectX 11。CMake 将自动下载并构建源码。 ``` git clone https://github.com/rrika/cdcEngineDXHR.git cd cdcEngineDXHR mkdir native_build cd native_build cmake .. -DNATIVE_BUILD=ON make ``` # 如何构建(在 Linux 上构建 Windows 32 位二进制文件) 此构建需要 Windows SDK。有一个名为 [xwin](https://jake-shadle.github.io/xwin/) 的 Rust 工具可以在非 Windows 系统上下载它。有关如何安装 Rust,请参阅 [rustup 说明](https://rustup.rs/)。完成后,你可以构建并运行 xwin。 ``` cargo install xwin --locked xwin --accept-license --arch x86 splat mv .xwin-cache/splat winsdk # need this specific folder name # rm -rf .xwin-cache # 如果你想 ``` 此项目的 CMake 构建要求其位于与 `winsdk` 相邻的目录中。 ``` git clone https://github.com/rrika/cdcEngineDXHR.git cd cdcEngineDXHR mkdir build cd build cmake .. make ``` # 如何构建(在 Windows 上构建 Windows 32 位二进制文件) 在 Visual Studio 2019 中,在启动时选择“打开本地文件夹”。VS 应该会检测到 CMakeLists.txt 文件并为你设置构建。请务必选择 x86,而不是 x64。 # 如何运行 此项目需要一份《杀出重围:人类革命 导演剪辑版》才能运行。在安装位置,你会找到一些文件: ``` BIGFILE.000 BIGFILE.001 BIGFILE.002 ... DXHRDC.exe ``` 按如下方式运行二进制文件: ``` export BIGFILE=path/to/game/BIGFILE.000 ./dxhr # for linux build ./dxhr.exe # for windows build ``` 在 Visual Studio 中,你可以在项目属性中将[环境变量](https://stackoverflow.com/questions/100543/)设置为 `BIGFILE=C:/path/to/game/BIGFILE.000`。如果你是在 windows/wine 上通过 Steam 安装的游戏,这些文件将被自动检测到。
标签:Bash脚本, C++, CMake, DirectX, URL提取, 云资产清单, 反编译, 可视化界面, 数据擦除, 游戏, 游戏引擎, 逆向工程