rrika/cdcEngineDXHR
GitHub: rrika/cdcEngineDXHR
对《杀出重围:人类革命》游戏引擎进行 IDA Pro 反编译并手动重建为可编译的 C++ 源码项目。
Stars: 300 | Forks: 13
# 欢迎

这里的代码是使用 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提取, 云资产清单, 反编译, 可视化界面, 数据擦除, 游戏, 游戏引擎, 逆向工程