<- 单击此处加入不和谐服务器。
本项目旨在完美重构Team Shanghai Alice的《东方红魔镜~红魔化身1.02h》源代码。
该项目仍在进行中并处于早期阶段。
该项目需要原始的東方紅魔郷.exe
版本1.02h(SHA256 hashsum 9f76483c46256804792399296619c1274363c31cd8f1775fafb55106fb852245,您可以在Windows上使用命令certutil -hashfile <path-to-your-file> SHA256
检查hashsum certutil -hashfile <path-to-your-file> SHA256
。)
将東方紅魔郷.exe
复制到resources/game.exe
。
构建系统具有以下包要求:
python3
>= 3.4msiextract
(仅限 linux/macos)wine
(仅在 linux/macos 上,更喜欢 macOS 上的 CrossOver 以避免可能的 CL.EXE 堆问题)aria2c
(可选,允许 torrent 下载,如果选择,将自动安装在 Windows 上。)构建系统的其余部分是使用 Web Archive 中的 Visual Studio 2002 和 DirectX 8.0 构建的。
这将下载并安装编译器、库和其他工具。
如果您使用的是 Windows,并且出于某种原因想要手动下载依赖项,请运行以下命令来获取要下载的文件列表:
python scripts/create_devenv.py scripts/dls scripts/prefix --no-download
但如果您希望自动下载所有内容,请像这样运行:
python scripts/create_devenv.py scripts/dls scripts/prefix
如果您想使用 torrent 下载这些依赖项,请使用以下命令:
python scripts/create_devenv.py scripts/dls scripts/prefix --torrent
在 Linux 和 Mac 上,运行以下脚本:
# NOTE: On macOS if you use CrossOver.
# export WINE=<CrossOverPath>/wine
./scripts/create_th06_prefix
运行以下脚本:
python3 ./scripts/build.py
这将自动生成一个 ninja 构建脚本build.ninja
,并在其上运行 ninja 。
您可以在配套存储库 th06-re 的xml
分支中找到 Ghidra RE 的 XML 导出。该存储库每晚通过 [ scripts/export_ghidra_database.py
] 更新,其历史记录与我们团队的 Ghidra 服务器的签入历史记录相匹配。
如果您希望帮助我们进行逆向工程工作,请在discord 上联系@roblabla,以便我们可以为您提供 Ghidra 服务器帐户。
重新实现的最简单方法是使用objdiff
。以下是如何开始:
東方紅魔郷.exe
文件(版本 1.02h)复制到resources/
文件夹中,并重命名为game.exe
。这将用作比较重新实现的来源。python3 scripts/export_ghidra_objs.py --import-csv
。这将从resources/game.exe
中提取 objdiff 可以比较的目标文件。最简单的方法是查看config/stubbed.csv
文件。这些都是被自动删除的函数。您应该选择其中之一,在 objdiff 中打开关联的目标文件,然后单击感兴趣的函数。
然后,打开正确的cpp
文件,复制/粘贴声明,然后开始黑客攻击!以 ghidra 反编译器输出作为基础可能会很有用。您可以在 th06-re 存储库中找到此输出。
我们谨向以下人士的宝贵贡献表示感谢:
var_order
pragma 移植到 MSVC7。