
Демонстрация джейлбрейка через консоль, которая выполняет нативные функции внутри процесса файловой системы Switch 2 посредством SmileBASIC, проверяет результаты и восстанавливает исходные инструкции.
Спасибо Codex за добросовестную упаковку эксплойтов для распространения. Нет, я не читал распространённый пакет.
Запускает две небольшие нативные функции внутри FS, проверяет их результаты и восстанавливает исходные инструкции. Только для Switch 2; npm install или компилятор не нужны.
Вам понадобятся SmileBASIC 4.4.9, системное ПО 23.0.1, Node.js 22+ на macOS или Linux, а также более 20 МиБ свободного места в сохранении SmileBASIC. Компьютер и консоль должны находиться в одной доступной сети.
В разделе SmileBASIC Make a Program введите bootstrap.bas в слот 0 и сохраните его
как NS2. USB-клавиатура поможет. ZIP — это пакет для компьютера, а не файл импорта SmileBASIC; опубликованного ключа загрузки нет.
Перезагрузите консоль, откройте SmileBASIC и войдите в режим Direct.
На компьютере откройте терминал в распакованной папке и выполните:
node run.cjs
Если будет предложено, выберите адрес компьютера, доступный консоли. Его также можно
указать напрямую: node run.cjs 192.168.1.10. Соединение использует порт 39380.
В SmileBASIC загрузите сохранённую программу и введите эти команды по отдельности:
LOAD "TXT:NS2"
RUN
REMOVE NSR,&H60000000,&H3FFFFFFF
Подтвердите загрузку. Сообщение Out of memory от REMOVE ожидаемо.
Затем введите строку V=START(...), выведенную компьютером.
Держите SmileBASIC открытым, а компьютер — в активном состоянии до появления FS execution verified. По завершении перезагрузите консоль; это также восстановит исходный процесс RO. Это демо не устанавливает кастомную прошивку или механизмы сохранения.
Если запуск не удался, сохраните папку runs и перезагрузите консоль перед повторной попыткой.
Вводите REMOVE только один раз на процесс приложения. Журналы и временные
снимки памяти остаются в runs; они не входят в распространяемый пакет.
Физически протестировано 21 октября 2026 года: обе задачи с инструкциями FS, восстановление и очистка прошли успешно. Получение чувствительно к таймингу: тест прошёл с третьей свежей загрузки. Первые две попытки остановились на проверках валидации и выполнили очистку.
run.cjs — точка входа на хосте. engine/switch2/pipeline.cjs содержит фиксированную
последовательность запуска; engine/switch2/process/fs-execute.cjs содержит демо FS.
Нативный помощник и его исходный код находятся в engine/switch2/ro/payload/.
Разработчики могут воспроизвести его с помощью Zig 0.15.2:
node engine/build-payload.cjs --check --zig /path/to/zig.