koopthekoopa/wii-ipl
GitHub: koopthekoopa/wii-ipl
将任天堂Wii主机系统菜单从二进制文件反编译为可编译源代码的逆向工程项目
Stars: 139 | Forks: 3
# 
Wii Menu
[![Build Status]][actions] [![Discord Badge]][discord]
Wii Menu (4.3) 正在进行中的反编译工作
本代码仓库**不**包含任何资产或可执行文件的汇编代码。需要现有的 Wii Menu WAD 文件。
支持的版本:
- `43U` - 版本 **4.3U** (美国)
- `43E` - 版本 **4.3E** (欧洲)
- `43J` - 版本 **4.3J** (日本)
- `43K` - 版本 **4.3K** (韩国)
# 进度
| 版本 | 进度 |
|-----------------------|------------------------------------------------------------------------------|
| [Wii Menu 4.3U][V43U] | [![FuncBadgeV43U]][V43U] [![DecompBadgeV43U]][V43U] [![LinkBadgeV43U]][V43U] |
| [Wii Menu 4.3E][V43E] | [![FuncBadgeV43E]][V43E] [![DecompBadgeV43E]][V43E] [![LinkBadgeV43E]][V43E] |
| [Wii Menu 4.3J][V43J] | [![FuncBadgeV43J]][V43J] [![DecompBadgeV43J]][V43J] [![LinkBadgeV43J]][V43J] |
| [Wii Menu 4.3K][V43K] | [![FuncBadgeV43K]][V43K] [![DecompBadgeV43K]][V43K] [![LinkBadgeV43K]][V43K] |
# 依赖项
## Windows
在 Windows 上,**强烈建议**使用原生工具链。**不**需要 WSL 或 msys2。
在 WSL 下运行时,[objdiff](#diffing) 无法获取文件系统通知以进行自动重新构建。
- 安装 [Python](https://www.python.org/downloads/) 并将其添加到 `%PATH%` 中。
- 也可以从 [Windows Store](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K) 获取。
- 下载 [ninja](https://github.com/ninja-build/ninja/releases) 并将其添加到 `%PATH%` 中。
- 通过 pip 快速安装:`pip install ninja`
## macOS
- 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages):
brew install ninja
[wibo](https://github.com/decompals/wibo) 是一个最小化的 32 位 Windows 二进制封装器,将被自动下载并使用。
## Linux
- 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages)。
[wibo](https://github.com/decompals/wibo) 是一个最小化的 32 位 Windows 二进制封装器,将被自动下载并使用。
# 构建
- 克隆代码仓库:
git clone https://github.com/koopthekoopa/wii-ipl.git
- 将你的 WAD 复制到 `orig/[Wii Menu Version]`。
- 配置:
python configure.py
要使用默认版本 4.3U 以外的版本,请使用 `--version` 参数。
- 构建:
ninja
# 差异对比
初始构建成功后,项目根目录下应存在一个 `objdiff.json` 文件。
从 [encounter/objdiff](https://github.com/encounter/objdiff) 下载最新版本。在项目设置中,设置 `Project directory`。配置应会自动加载。
从左侧边栏选择一个对象开始差异对比。项目的更改将自动重新构建:包括源文件、头文件、`configure.py`、`splits.txt` 或 `symbols.txt` 的更改。

标签:C/C++, DNS解析, Ninja, Python, URL提取, Wii, 事务性I/O, 二进制分析, 云安全运维, 云资产清单, 代码还原, 任天堂, 反编译, 固件分析, 客户端加密, 嵌入式系统, 开源项目, 怀旧游戏, 无后门, 游戏主机, 游戏开发, 系统菜单, 逆向工具, 逆向工程