mkst/esa
GitHub: mkst/esa
PSX 游戏反编译概念验证项目,借助 N64 反编译工具链实现了 PlayStation 1 游戏的字节级匹配重编译。
Stars: 10 | Forks: 2
# Evo's Space Adventures PSX


这是 PlayStation 1 游戏 Evo's Space Adventure 反编译的概念验证(Proof-of-Concept)及进行中的工作。
有关更多信息,请参阅 [Wiki](https://github.com/mkst/esa/wiki)。
**注意:** 要使用此代码库,您必须已经拥有该游戏的一份副本。
## 构建说明
以下说明假设您将使用 `Ubuntu 22.04`;无论是通过原生系统、[WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10),还是通过 [Docker](https://docs.docker.com/get-docker/)。
请查看 [packages.txt](packages.txt) 和 [requirements.txt](requirements.txt),了解所需的前提 Linux 和 Python 包。
### 克隆
克隆代码库;请注意使用 `--recursive` 标志以便同时获取子模块:
```
git clone --recursive git@github.com:mkst/esa.git
```
进入刚克隆的代码库
```
cd esa
```
将您 ESA CDROM 中的 `esa.dat` 复制到代码库的根目录,然后就可以开始构建了。
### 使用 Docker
使用预构建、即开即用的镜像启动容器:
```
docker run --rm -ti -v $(pwd):/esa ghcr.io/mkst/esa:latest
```
### 通用步骤
提取并反汇编 `esa.dat` 可执行文件:
```
make extract
```
重新编译为 `build/esa.dat`:
```
make all --jobs
```
## 备注
### 工具链
本项目使用 gcc 2.92.2、GNU as 和 `maspsx` 来构建匹配的二进制文件,而无需使用 PSYQ 工具链。`modern-aspsx` 脚本仍在开发中(WIP),可能无法涵盖所有必需的功能。
### Space Station Silicon Valley
该项目的存在仅有两个目的;首先是为了证明可以使用为 N64 反编译项目构建的工具来加速 PSX 的反编译,其次(也是更重要的一点)是为了帮助加速现有的 [SSSV](https://github.com/mkst/sssv) 反编译项目。
大量代码是从该游戏的 N64 版本和 PSX 移植版中复制/粘贴而来的,因此通过同时处理这两个项目(使用不同的编译器 - IDO 对比 GCC),我们能够获得比单独反编译 SSSV 更多的见解。
话虽如此,许多功能已被剥离;PSX 移植版是该游戏的一个更为基础的版本。
本项目中的文件已根据它们在 SSSV 中对应的文件进行命名。
## 工具 / 致谢
站在巨人的肩膀上……如果没有这些工具(以及更多),这个项目是不可能实现的:
- [asm-differ](https://github.com/simonlindholm/asm-differ);快速对比源文件/目标文件的汇编代码差异
- [binutils](https://www.gnu.org/software/binutils/);如果没有 GNU,我们会身处何方。
- [decomp-permuter](https://github.com/simonlindholm/decomp-permuter);调整代码、重新构建、打分;有助于解决奇怪的寄存器分配(regalloc)问题
- [m2c](https://github.com/matt-kempster/m2c);汇编到 C 代码的翻译器
- [modern-asn64](https://github.com/RocketRet/modern-asn64);证明了 GNU as 可用于构建 PSYQ 编译的游戏!
- [old-gcc](https://github.com/decompals/old-gcc);可直接使用的旧版 gcc 集合
- [splat](https://github.com/ethteck/splat);二进制拆分器/反汇编器以及更多功能
标签:Decompilation, DNS解析, Docker, Evo's Space Adventures, gcc, Git子模块, GNU工具链, Makefile, MASPSX, N64工具链, PlayStation 1, PoC, PSX, Space Station Silicon Valley, URL提取, Wayback Machine, WSL2, 二进制分析, 云安全运维, 反汇编, 反编译, 复古游戏, 安全防御评估, 客户端加密, 开源项目, 提取与构建, 暴力破解, 概念验证, 汇编, 游戏逆向工程, 经典游戏, 请求拦截, 跨平台编译, 逆向工具