---
title: "安装 boot9strap(通过 kartdlphax)"
---
{% include toc title="目录内容" %}
{% capture technical_info %}
技术细节(选看)
为了破解系统的 SAFE_MODE 固件,我们需要注入一个写入了漏洞的 WiFi 配置文件到主机中。
为了做到这一点,我们将用一台已安装了自制固件的 3DS 安装一个插件,然后利用马里奥赛车 7 这个游戏中的下载通信功能进行一些操作。
这个插件将会发送带有漏洞的代码到未破解的主机中,然后它将会向未破解的主机中注入带有漏洞的配置文件到 WiFi 连接点列表。
一旦 WiFi 配置文件被注入,我们将会使用到 SAFE_MODE 来继续此教程。SAVE_MODE 是一个所有的 3DS 主机都存在的修复功能,之后它将用于激活被破解的 WiFi 配置文件。
如果想知道更多的技术细节,请参阅以下链接:[kartdlphax](https://github.com/PabloMK7/kartdlphax)、[unSAFE_MODE](https://github.com/zoogie/unSAFE_MODE/)。
{% endcapture %}
{{ technical_info | markdownify }}
{: .notice--info}
### 兼容性注意
如果你想通过此方法安装自制固件,则你需要:
- 一台已安装自制固件的 3DS (**源 3DS**),它与你要破解的主机(**目标 3DS**)系统为同一区域
+ 必须是美版、日版或欧版机
- 一份与两台主机同区的马里奥赛车 7 实体版或数字版
- 两张 SD 卡
如果**目标 3DS** 的 L、R、↑、A 其中一个按键坏了,则你会卡在需要用到这些按键的步骤上。 如需针对此问题的帮助,请加入 [Nintendo Homebrew on Discord](https://discord.gg/MWxPgEp) 并使用英文求助。(请注意,如果你身处中国大陆,访问 Discord 可能需要科学上网),你也可以到译者的 [QQ 群](https://stray-soul.site/index.php/qqgroup)寻求帮助,群号为 942052497。
{: .notice--warning}
### 你需要准备点啥?
在**源 3DS**(已安装自制固件的 3DS)上操作以下步骤:
* 最新版本的 [kartdlphax](https://github.com/PabloMK7/kartdlphax/releases/latest)(下载 `plugin.3gx`)
* 最新版本的 [Luma3DS 3GX Loader 修改版](https://github.com/Nanquitas/Luma3DS/releases/latest)(下载 `boot.firm`)
在**目标 3DS**(你试图破解的 3DS)上:
* 最新版本的 [SafeB9SInstaller](https://github.com/d0k3/SafeB9SInstaller/releases/download/v0.0.7/SafeB9SInstaller-20170605-122940.zip)(直链)
* 最新版本的 [boot9strap](https://github.com/SciresM/boot9strap/releases/download/1.4/boot9strap-1.4.zip)(直链)
* 最新版本的 [Luma3DS](https://github.com/LumaTeam/Luma3DS/releases/latest)(下载 Luma3DS `.zip` 文件)
* 最新版本的 [unSAFE_MODE](https://github.com/zoogie/unSAFE_MODE/releases/latest)(下载 RELEASE `.zip` 文件)
#### 第一步 – 准备工作(源 3DS)
为了向目标 3DS 传输带有漏洞的数据,你将需要按照以下内容配置源 3DS(已安装了自制固件的 3DS)。
1. 在你的电脑中插入你的**源 3DS** 的 SD 卡
1. 复制 Luma 3GX Loader Edition 的 `boot.firm` 到**源 3DS** 的 SD 卡根目录,替换当前已有的文件
+ 根目录指的是你点进 SD 卡看到的目录,你可以在这个目录下看到 Nintendo 3DS 文件夹,但请不要点进去
1. 复制 kartdlphax 的 `plugin.3gx` 到**源3DS** 的 SD 卡上对应你所拥有的马里奥赛车 7 区域版本的文件夹:
- 美版: `luma/plugins/0004000000030800`
- 欧版: `luma/plugins/0004000000030700`
- 日版: `luma/plugins/0004000000030600`
如果 `plugins` 和 `00040000...` 文件夹不存在,请先创建它们
1. 弹出 SD 卡并将其插回**源 3DS**
#### 第二步 – 准备工作(目标 3DS)
为了修改目标 3DS(你正在破解的 3DS),你需要复制一些文件到目标 3DS 的 SD 卡中。
1. 在你的电脑中插入你的**目标 3DS** 的 SD 卡
1. 复制 Luma3DS `.zip` 里的 `boot.firm` 和 `boot.3dsx` 到你 SD 卡的根目录
1. 在 SD 卡根目录创建一个名为 `boot9strap` 的文件夹
1. 从boot9strap `.zip` 文件中复制 `boot9strap.firm` 和 `boot9strap.firm.sha` 到你SD卡的 `/boot9strap/` 文件夹中
1. 从 SafeB9SInstaller `.zip` 压缩包中复制 `SafeB9SInstaller.bin` 到 SD 卡根目录下
1. 从 unSAFE_MODE `.zip` 复制 `usm.bin` 到 SD 卡的根目录
1. 在你 SD 卡的根目录新建一个叫 `3ds` 的文件夹
1. 从 unSAFE_MODE `.zip` 中复制出 `slotTool` 文件夹到你的 SD 卡的 `3ds` 文件夹
1. 取下 SD 卡并将其插回**目标 3DS**
#### 第三步 – kartdlphax
本节中,你将使用下载通信程序来从源 3DS 传输带有漏洞的数据到目标 3DS,它将会用带有漏洞的数据覆盖你的 Wi-Fi 连接点设置槽。 你自己设置的 Wi-Fi 链接点将在这个过程中被暂时覆盖。
1. 启动 **源 3DS **
- 若主机提示设置 Luma3DS,则你可以直接按下 START 键来保存配置
1. 进入主菜单后,同时按下 “L” + “↓” + “Select” 键调出 Rosalina 菜单
1. 选择 “Enable plugin loader”
1. 按 “B” 键退出 Rosalina 菜单
1. 启动马里奥赛车 7
- 请确保你已经打开了无线连接
1. 选择 `本地多人游戏(Local Multiplayer)` 一个菜单应该会弹出来
- 如果卡住了,请按住主机的电源键 15 秒来强制关机,然后再试一次
- 如果你先前已经启动过了 kartdlphax,则最后选定的设置将会被加载。 如果一切正确,请选中 `Use settings` 然后跳过接下来的 3 个小步骤。 如果不对,请选择 `Change settings` 然后继续操作。
1. 选择你的**目标 3DS** 的主机类型(旧版 3DS 或新版 3DS 系列)
1. 将漏洞类型切换至 `3DS ROP xPloit Injector`
1. 确认菜单将会显示。 如果上屏显示的设置一切正确,请选中 `Use settings`
- 如果不正确,请选择 `Change settings` 然后进行相应的修改
1. 选择 `Create Group`
- 如果你用的是游戏卡带,且源 3DS 此时卡住了,那么请尝试 [将卡带中的游戏安装到系统中](dumping-titles-and-game-cartridges#installing-a-game-cartridge-directly-to-the-system)
1. 启动**目标 3DS **
- 请确保你已经打开了无线连接
1. 在**目标 3DS**上,打开下载通信(Download Play)应用 (![]({{ "/images/download-play-icon.png" | absolute_url }}){: height="24px" width="24px"}),然后选择 “Nintendo 3DS”
1. 加入由**源 3DS** 创建的群组
1. 待**源 3DS** 检测到**目标 3DS** 后,点击“开始”
1. 多人游戏加载完成后,依次点击 `大奖赛` -> `50cc` ->(任何角色)-> `蘑菇杯` -> `OK`
1. 稍等一会儿(百分比应该会显示在**源 3DS** 上)
1. 如果漏洞执行成功,**目标 3DS** 将会启动 3DS ROP xPloit Injector
- 如果漏洞没有成功触发,则请将**源 3DS** 和 **目标 3DS** 一起关机,然后从 `第三步 — kartdlphax` 重新开始
1. 按 X 键来注入 unSAFE_MODE
1. 如果注入成功,**目标 3DS** 的屏幕闪绿屏,然后自动关机
+ 如果是闪红屏,则请将目标 3DS 关机,然后从 `第三步 — kartdlphax` 重新开始。 如果依然不行,请于 [Nintendo Homebrew Discord 服务器](https://discord.gg/MWxPgEp))寻求帮助
接下来的步骤中将**不再**需要使用**源 3DS** 来完成。 接下来的步骤应该只能在**目标 3DS**上完成。
{: .notice--info}
#### 第四步 – unSAFE_MODE
本节中,你将会进入安全模式(一个所有 3DS 系列主机都有的功能),然后进入一个会触发 unSAFE_MODE 漏洞的菜单,并启动 boot9strap(自制固件)安装器。
1. 将你的主机置于关机状态,按住 L + R + ↑ + A 四个按键,然后按下电源键
+ 按住这几个按钮,直到主机进入安全模式(一个“系统更新”菜单)
+ 如果你试了很多次依然无法进入安全模式,则也许这四个按键中有一个按错了,或是坏掉了。 如果确实如此,请加入 [Nintendo Homebrew on Discord](https://discord.gg/MWxPgEp) 并使用英文求助。(请注意,如果你身处中国大陆,访问 Discord 可能需要科学上网),你也可以到译者的 [QQ 群](https://stray-soul.site/index.php/qqgroup)寻求帮助,群号为 942052497。
1. 点击 “OK” 来允许更新
+ 这个步骤实际上不存在更新。 这只是触发漏洞的一部分
1. 点击 “I accept(我同意/同意する)”
1. 更新最终将失败,然后报出 `003-1099` 的错误。 这是剧本中的一部分
1. 当系统问你“你想要配置互联网设置吗?(Would you like to configure Internet settings?)”时,点击 “Yes”
1. 在菜单中,依次进入 `连接点 1(接線先1/Connection 1)` -> `更改设置(設定変更/Change Settings)` -> `下一页(右箭头)` -> `代理设置(Proxy/Proxy Settings)` -> `详细设置(詳細設定/Detailed Setup)`([例图](/images/screenshots/bb3/safemode_highlighted.png))
1. 如果漏洞执行成功,你的主机将会进入到 SafeB9SInstaller
#### 第五步 – 安装 boot9strap
本节中,你将会把自制固件安装到你的主机中。
1. 出现提示时,按照上屏的提示输入按键组合来安装 boot9strap
+ 如果上屏白屏,则请强制关机然后重做第三步
1. 安装完成后,按下 “A” 键重启主机
1. 你的目标 3DS 应该已经重启到 Luma3DS 的配置菜单中
+ Luma3DS 配置菜单用于设置 Luma3DS 自制固件的可选功能 其中有许多功能可用于个性化或调试
+ 由于配合本手册的用途,我们将直接按照默认配置保存
+ 如果你的主机在你尝试开机后自动关机了,请确认你已经从 Luma3DS `.zip` 中复制了 `boot.firm` 文件到你的 SD 卡根目录中
1. 按下 “Start” 键保存设置并重启
这时,你的主机默认将会自动启动 Luma3DS。
+ Luma3DS 不会给正常的主菜单增添任何看上去十分特别的东西。 如果你的主机现在已经启动到主菜单了,说明自制固件已经在运行了。
+ 在下一页中,我们将会教你安装一些有用的自制程序来完成安装步骤。
#### 第六步 – 还原 WiFi 配置文件
本节中,你将会进入 Homebrew Launcher,然后还原第三步中被覆盖的 Wi-Fi 设置。
1. 运行“下载通信(Download Play)”程序
1. 等到你看到两个按钮
+ 不要按任何按键
1. 同时按下 “L” + “↓” + “Select” 键来打开 Rosalina 菜单
1. 选择 “Miscellaneous options”
1. 选择 “Switch the hb. title to the current app.”
1. 按 “B” 键继续
1. 按 “B” 键返回 Rosalina 主菜单
1. 按 “B” 键退出 Rosalina 菜单
1. 按下 “Home” 键,然后关闭“下载通信(Download Play)”
1. 重新运行“下载通信(Download Play)”程序
1. 此时你的主机应该会启动 Homebrew Launcher了
1. 从自制程序列表中找到并启动 slotTool
1. 选择“RESTORE original wifi slots 1,2,3”
1. 你的主机将会重启
___
### 继续至[完成安装](finalizing-setup)
{: .notice--primary}