Инструменты пользователя

Инструменты сайта


freepsxboot

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
freepsxboot [2026/10/07 13:59] – geckofreepsxboot [2026/10/16 14:59] (текущий) – gecko
Строка 1: Строка 1:
 ====== FreePSXBoot ====== ====== FreePSXBoot ======
  
-Эксплойт, позволяющий выполнить на PlayStation, в том числе нечипованной, произвольный код, используя только специально отформатированую карту памяти (без аппаратной модификации консоли).+Эксплойт (софтмод), позволяющий выполнить на PlayStation произвольный код, используя только специально отформатированую [[memory_card|карту памяти]], без аппаратной модификации консоли.
  
 https://github.com/brad-lin/FreePSXBoot https://github.com/brad-lin/FreePSXBoot
  
-При помощи FreePSXBoot обычно запускается утилита [[Unirom]], но может быть выполнен любой [[psx_exe|зарузочный образ]], который уместится в объем карты памяти (128 KiB) вместе с данными самого FreePSXBoot. Под полезную нагрузку остается ориентировочно около 100 KiB. Это позволяет тестировать простейшие homebrew-игры.+Образ карты памяти собирается под определенную версию [[BIOS]] консоли и под запуск через определенный слот. Эксплойт работает также и в большинстве эмуляторов, при использовании дампа оригинального BIOS соответствующей версии. 
 + 
 +При помощи FreePSXBoot обычно запускается утилита [[Unirom]], но может быть выполнен любой [[psx_exe|зарузочный образ]], который уместится в объем карты памяти (128 KiB) вместе с данными самого FreePSXBoot. Для максимальной совместимости с разными версиями BIOS размер образа не должен превышать 64 KiB. 
 + 
 +===== Описание ===== 
 + 
 +Эксплойт использует неочевидный баг в функции [[BIOS]] ReadMemCardDirectory (0xbfc08b3c в ROM SCPH-9002). Эта функция отвечает за чтение структуры каталога карты памяти. 
 + 
 +Оболочка (пользовательский интерфейс BIOS, который загружается, если в консоль не вставлен диск) имеет функцию управления картами памяти - копирования и удаления сохранений. Когда она читает индекс файловой системы карты, она копирует первые 32 байта каждой каталожной записи в память и проверяет данные на предмет ошибок. Функция не проверяет границы данных в записи: она предполагает, что размер файла и индекс следующего блока в каждой записи корректны. Манипулируя этими индексами, можно заставить BIOS читать с карты произвольные данные. FreePSXBoot формирует запись так, чтобы при чтении в BIOS произошло переполнение буфера. В результате управление перехватывает загруженный в память 128-байтовый код из буфера (stage 1), который считывает с карты основной загрузчик (stage 2), а тот, в свою очередь, - полезную нагрузку, добавленную при создании образа.
  
-Эксплойт работает также и в большинстве эмуляторов, при использовании дампа оригинального BIOS соответствующей версии. 
  
 ===== Builder ===== ===== Builder =====
Строка 18: Строка 25:
 В параметре -bios нужно указать версию BIOS целевой консоли. В параметре -slot - слот карты памяти, 1 или 2. Рекомендуется использовать слот 2. В параметре -bios нужно указать версию BIOS целевой консоли. В параметре -slot - слот карты памяти, 1 или 2. Рекомендуется использовать слот 2.
  
-Отформатировать карту памяти можно при помощи [[Unirom]]. **Внимание! Это сделает карту нечитаемой для игр и BIOS!** Настоятельно рекомендуется вместо настоящей карты памяти использовать устройство наподобие PSxMemCard, которое хранит данные на microSD.+Отформатировать карту памяти можно при помощи [[Unirom]]. **Внимание! Это сделает карту нечитаемой для игр и оболочки BIOS!** Настоятельно рекомендуется вместо настоящей карты памяти использовать устройство наподобие PSxMemCard, которое хранит данные на microSD.
  
freepsxboot.1791381547.txt.gz · Последнее изменение: — gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki