Tech Support - Техническая поддержка Здесь можно обсудить различные проблемы связанные как с консолями, так и с персональным компьютером (Не обсуждать эмуляцию!)

Реклама
Оцените пожалуйста - Новый взлом PS2.
(0)
Рейтинг темы: голосов - 0, средняя оценка - .

Теги
ps2, взлом, взлом ps2

Ответ
 
Опции темы
Старый 05.07.2020, 12:09   #1
Легенды PSX Planet
 
Аватар для shamalama
 
Регистрация: 20.04.2010
Пол: Мужской Мужской
Сообщений: 9,160
shamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспорима
Счастье Новый взлом PS2             

Сводка информации.

на русском - https://medialeaks.ru/2906lns-dvd-fries/amp/

Техническая часть здесь - https://cturt.github.io/freedvdboot.html

Это дело ещё далеко до завершения. Нужного патча ещё не существует в реальности, его ещё предстоит попробовать написать, оттестировать и доработать, и ещё неизвестно насколько это успешно получится сделать.. В идеале, при успехе всего этого предприятия, можно будет патчить образы игр перед записью их на болванку, чтобы запускать их на нечипованной консоли.
Вот и всё.

вот что есть на текущий момент - https://github.com/CTurt/FreeDVDBoot
__________________
[SIZE=1][I][B][FONT=Georgia][COLOR=SlateGray]"Рукописи не горят", игровой программный код - не устаревает.[/COLOR][/FONT][/B][/I][/SIZE]
shamalama вне форума  
Ответить с цитированием
Эти 4 пользователи сказали Спасибо shamalama за это сообщение:
Реклама

Старый 05.07.2020, 12:23   #2
Person Of The Community
 
Аватар для fiuke
 
Регистрация: 31.12.2016
Пол: Мужской Мужской
Сообщений: 1,687
fiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

рус клон темы
Нажмите

  • Ранее я уже говорил о том, что в PlayStation 2 нет хороших программных подвигов для запуска homebrew. Вам необходимо либо приобрести карту памяти с предварительно установленным эксплойтом, открыть консоль, чтобы заблокировать датчики лотка диска, либо установить модчип. Для самой продаваемой консоли за все время она заслуживает лучших хаков.

    Моя первая попытка решить эту проблему состояла в том, чтобы использовать интерпретатор BASICэто пришло с ранних PS2 региона PAL. Хотя мне удалось создать первый программный эксплойт для точки входа, который можно запустить с использованием только оборудования, поставляемого с консолью, атака была в значительной степени подвергнута критике из-за необходимости вручную вводить полезную нагрузку через контроллер или клавиатуру, и ограничение только PAL. Я решил списать этот эксплойт как нецелесообразный, и поэтому охота продолжилась для лучшего сценария атаки для PlayStation 2.

    PlayStation 2 имеет другие источники ненадежного ввода, на которые мы могли бы атаковать; игры, которые поддерживают многопользовательский онлайн или USB-накопитель, почти наверняка можно использовать. Но, в отличие от, скажем, Nintendo 64, где у нас нет другого выбора, кроме как прибегнуть к использованию игр через интерфейсы, такие как модемыPlayStation 2 имеет одно ключевое отличие: его основным входом является оптический носитель (CD / DVD-диски), формат, который любой может легко записать с помощью легкодоступного пользовательского оборудования. Это оставляет интересный вопрос, который я хотел решить, так как я был ребенком:
    Можно ли просто записать наши собственные домашние игры и запускать их на неизмененной консоли так же, как мы запускаем официальные диски (без какого-либо взаимодействия с пользователем, такого как перестановка дисков или запуск сетевого эксплойта в игре)?
    В конечном итоге мне удалось достичь своей цели, используя функциональность DVD-плеера консоли. В этом блоге будут описаны технические детали и процесс обращения DVD-плеера и его эксплуатации. Весь мой код доступен на GitHub .


    Демонстрационное видео о новой игре PlayStation 2 через DVD-плеер, которое позволяет записывать домашние игры и запускать их на неизмененной консоли так же, как на официальных дисках. Это демо показывает результат на PS2SDK патч , который добавляет поддержку для чтения DVD - видеодиски (uLaunchELF теперь можно загрузить хомбрю с диска, а теперь эмуляторы может загружать диски с диска).


Источник: Twitter @CTurtE
Скачать .iso-Image: прекомпилированный ISOs
Полного сообщение в блоге: FreeDVDBoot
FreeDVDBoot на GitHub: CTurt
Канал YouTube: CTurt
Нажмите
FreeDVDBoot - взлом PlayStation 2 через DVD-плеер

Первоначальная публикация: 27 июня 2020 г.Ранее я уже говорил о том, что в PlayStation 2 нет хороших программных подвигов для запуска homebrew. Вам необходимо либо приобрести карту памяти с предварительно установленным эксплойтом (или адаптером карты памяти на USB), отсек расширения жесткого диска (недоступно для тонких консолей), открыть консоль для блокировки датчиков лотка для дисков, либо установить Modchip. Для самой продаваемой консоли за все время она заслуживает лучших хаков.
Моя первоначальная попытка решить эту проблему состояла в том, чтобы использовать интерпретатор BASIC, который поставлялся с ранними PS2 региона PAL. Хотя мне удалось создать первый программный эксплойт для точки входа, который можно запустить с использованием только оборудования, поставляемого с консолью, атака была в значительной степени подвергнута критике из-за необходимости вручную вводить полезную нагрузку через контроллер или клавиатуру, и ограничение только PAL. Я решил списать этот эксплойт как непрактичный, и поэтому охота продолжилась для лучшего сценария атаки для PlayStation 2.
PlayStation 2 имеет другие источники ненадежных данных, которые мы могли бы атаковать; игры, которые поддерживают многопользовательский онлайн или USB-накопитель, почти наверняка можно использовать. Но в отличие от, скажем, Nintendo 64, где у нас нет другого выбора, кроме как прибегнуть к использованию игр через интерфейсы, такие как модемы , PlayStation 2 имеет одно ключевое отличие: его основным входом является оптический носитель (CD / DVD-диски), формат, который каждый может легко записать на легкодоступном потребительском оборудовании. Это оставляет интересный вопрос, который я хотел решить, так как я был ребенком:
Можно ли просто записать наши собственные домашние игры и запускать их на неизмененной консоли так же, как мы запускаем официальные диски (без какого-либо взаимодействия с пользователем, такого как перестановка дисков или запуск сетевого эксплойта в игре)?

В конечном итоге мне удалось достичь своей цели, используя функциональность DVD-плеера консоли. В этом блоге будут описаны технические детали и процесс обращения DVD-плеера и его эксплуатации. Загрузка резервных копий коммерческих игр также возможна . Весь мой код доступен на GitHub .

Поверхность атаки видеоплеера DVD

Очевидно, мы не можем просто записать диск, содержащий файл ELF, и ожидать, что PS2 загрузит его; нам нужно будет использовать какую-то уязвимость программного обеспечения, связанную с анализом контролируемых данных. Консоль поддерживает воспроизведение записанных видеодисков DVD, что открывает значительные возможности для атаки, которые мы могли бы потенциально использовать для достижения нашей цели.
Если мы подумаем о том, из чего состоит DVD-видео, есть немало основных компонентов, каждый из которых может быть уязвим:
  • Файловая система UDF
  • DVD-видео метаданные / субтитры
  • Аудио и видео декодирование
  • Интерактивная машина
Несмотря на то, что полная спецификация DVD Video, к сожалению, стоит за платным доступом, она в основном состоит из открытых форматов, таких как MPEG , просто связанных в собственном формате контейнера (VOB). Для имущественных аспектов есть некоторые свободно доступные неофициальные ссылки.
Формат файла IFO , вероятно, является самым простым используемым форматом и отвечает за хранение метаданных, которые связывают видеофайлы вместе.
Интерактивная машина - это то, что позволяет создавать интерактивные меню и игры в DVD-видео. Он имеет 32 группы инструкций и интересен тем, что потенциально может использоваться для динамического манипулирования состоянием внутренней памяти для запуска эксплойта, или его можно использовать для создания универсального DVD-диска с меню, позволяющим выбрать версию встроенного программного обеспечения и запустить соответствующий подвиг.

Настроить

Ясно, что проводить тестирование на реальном оборудовании практически нецелесообразно, поскольку запись сотен тестовых дисков была бы бесполезной и неэффективной по времени. Нам нужен эмулятор с некоторой поддержкой отладчика, и именно здесь мы столкнулись с нашим первым препятствием: самый популярный эмулятор для PlayStation 2, PCSX2, не поддерживает воспроизведение DVD-видео , и никто не заинтересован в добавлении поддержки.
Я хотел бы поблагодарить krHacken за помощь в преодолении этого первого контрольно-пропускного пункта. Оказывается, PCSX2 поддерживает DVD-плеер; он просто не может загрузить его автоматически, поскольку он находится в зашифрованном хранилище, а PCSX2 не поддерживает расшифровку. Существуют общедоступные инструменты, которые могут расшифровать и извлечь DVD-плеер из хранилища EROM. Затем его можно упаковать в ELF для легкой загрузки в PCSX2.
В связи с большим количеством выпущенных моделей PlayStation 2, каждая из которых имеет несколько разные прошивки DVD-плеера (> 50 ...), я остановлюсь на одном DVD-плеере на время этой статьи: 3.10E (с настройкой на английском языке в Настройки PS2), как это бывает прошивка для консоли у меня есть. Обновление: очевидно, эксплойт 3.10E, описанный здесь, работает на консоли 3.10U без изменений.
Я буду продолжать использовать Ghidra для декомпиляции, как я использовал в предыдущих статьях. DVD-проигрыватель не содержит каких-либо символов, поэтому все имена в фрагментах кода были назначены мной с помощью реверс-инжиниринга.

Данные, контролируемые диском

Первый файл, который DVD-плеер попытается прочитать, - это VIDEO_TS.IFO. Выполняя поиск в памяти содержимого файла и затем устанавливая там точки останова записи в память, чтобы отследить, где он был записан, мы быстро находим API, который считывает содержимое диска, используемого кодом синтаксического анализа IFO, по getDiscByteадресу 0x25c920. Это потоковый считыватель, который кэширует несколько секторов в буфере ОЗУ, а затем автоматически ищет больше данных, когда это необходимо:
byte getDiscByte(void) { byte ret; if (currentDiscBytePointer < endDiscBytePointer) { ret = *currentDiscBytePointer; } else { currentDiscBytePointer = &buffer; setOffset = setOffset + numberOfSectorsRead; getDiscByteInternal(); ret = *currentDiscBytePointer; } currentDiscBytePointer = currentDiscBytePointer + 1; return ret;}
От поиска вызовов к этому мы также можем быстро найти оболочки, которые извлекают данные больших размеров: getDiscU16( 0x25c980), getDiscU32( 0x25c9b8) и getDiscData( 0x25c9f0), что наиболее интересно, так как читает произвольную длину данных:
void getDiscData(uint size, byte *destination) { byte b; uint i; i = 0; if (size != 0) { do { i = i + 1; b = getDiscByte(); *destination = b; destination = destination + 1; } while (i < size); } return;}

Большой читает

Первое, что я сделал, - это поиск звонков getDiscDataв надежде найти звонок с контролируемым размером и без проверки границ.
Конечно же, мы очень быстро выявляем около 4 явных уязвимостей переполнения буфера такого рода. Возвращаясь к формату файла IFO , мы видим, что существуют многочисленные 16-битные длины массивов, которые необходимы для анализа структур данных переменного размера в файле. DVD-проигрыватель по ошибке ожидает только максимальную длину, допустимую спецификацией DVD, и поэтому в нем отсутствуют чеки для отклонения дисков с большей длиной. Поскольку все копии выполняются в статически распределенных буферах памяти, указание длины больше допустимой приведет к переполнению буфера. Например, ниже приведена декомпиляция для следующей 0x25b3bc:
large1 = getDiscU16(); large2 = getDiscU16(); large3 = getDiscU16(); ignored = getDiscU16(); getDiscData(((uint)large1 + (uint)large2 + (uint)large3) * 8, &DAT_0140bdd4);
Это наиболее интересный вариант, поскольку он позволяет максимально увеличить размер копии (в 0xffff * 3 * 8 = 0x17FFE8байтах) из всех getDiscDataпереполнений буфера. Он копирует в статически выделенный буфер в 0x0140bdd4, и, указав максимально возможный размер копии, мы получаем контроль над адресным пространством от 0x140bdd4to 0x158BDBC( 0x140bdd4 + 0x17FFE8).

Коррупция от большого чтения

Как видите, мы можем контролировать довольно большую область памяти, используя вышеуказанную уязвимость. Тем не менее, сканирование через эту память изначально очень разочаровывает; указателей очень мало, и ни один из них не выглядит особенно интересным для коррупции!
Хотя в этом регионе нет интересных указателей, есть некоторые индексы, которые в случае повреждения могут привести к дальнейшему выходу за пределы повреждения памяти.
Обратите внимание , что большая читается как это не всегда копировать смежные данные из файла IFO, поскольку секторы начнут повторять один раз мы превышать размер файла, но обычно предполагается , что все данные , записанные с помощью getDiscDataвызова можно регулировать , как это происходит из где - то на диск. Кроме того, после записи определенной суммы мы можем переполниться во внутреннее состояние, используемое getDiscByteфункциями, но мы вернемся к этому позже.

OOB звонок

У 0x25e388нас есть этот вызов записи в массиве указателей на функции, где мы можем контролировать 16-битный fpIndexпоток 0x141284aиз переполнения:
(*(code *)(&PTR_LAB_005b9d40)[(uint)fpIndex])(puVar6 + ((uint)DAT_01412841 - 1) * 8);
Это позволяет нам перейти к адресу, который хранится в любом месте от 0x5b9d40до 0x5b9d40 + 0xffff * 4 = 0x5F9D3C.

Использование OOB звонка

Этот примитив не совсем идеален, поскольку ни одна из наших ошибок переполнения не позволяет нам контролировать память, из которой считываются цели прыжка. Хуже того, большая часть этой области памяти отображается из секции DVD-плеера, предназначенной только для чтения, поэтому маловероятно, что мы сможем повлиять на содержимое этой области памяти без еще одной ошибки.
После указателей на функции мы видим некоторые адреса для switch caseметок, что немного интересно, потому что это позволяет нам перейти к середине функции и выполнить ее эпилог, не выполнив ее пролог, что позволяет нам сместить указатель стека и вернуться к неожиданное значение в стеке. Я прошел через все это, и, к сожалению, я только мог использовать это, чтобы перейти к 0.
Наконец, после указателей кода мы видим строковые данные только для чтения. Интересно, что эти данные можно изменить, переключая языки в меню PS2, что дает большую надежду найти хотя бы одну полезную цель перехода в каждой версии прошивки, однако, к сожалению, это происходит за счет того, что пользователь вынужден перенастроить свой язык.
Я решил сбросить всю область возможных целей перехода, сгруппировать их в 4 байта и посмотреть, будет ли какая-либо из них указывать на память, которую мы контролируем через уязвимость переполнения ... Удивительно, но есть результат: точки индекса 0xe07e(адреса 0x5f1f38) к 0x1500014, что находится в пределах нашего контролируемого диапазона! Это не идеально, так как это кэшированный виртуальный адрес, и поэтому мы можем столкнуться с проблемами когерентности кэша, но это может сработать.

Написать письмо

Удивительно, что у нас есть действительная цель прыжка, которая уже указывает на память, которой мы можем управлять. Поскольку другие версии DVD-плеера с другим адресным пространством, вероятно, не будут иметь такой же роскоши, я кратко расскажу о еще одном примитиве коррупции, на случай, если он окажется полезным для любого, кто пытается использовать версию своей собственной консоли.
Есть возможная OOB запись в 0x25c718(внутри getDiscByteInternal):
if (*(int *)(&DAT_01411e54 + indexForOOBW * 4) == 0) { error = getBuffer(filename,0,&buffer,1,0); if (error < 0) goto LAB_0025c79c; lVar3 = FUN_002161f8(0x140de40,pcVar4,0xc); if (lVar3 == 0) { uVar2 = getControlledValue();--> *(undefined4 *)(&DAT_01411e54 + indexForOOBW * 4) = uVar2; if (*(int *)(&DAT_01411e54 + indexForOOBW * 4) != 0) goto LAB_0025c7ac; } error = -3; }
Поскольку indexForOOBWэто 32-битное значение, его повреждение из-за большого переполнения может потенциально позволить запись в произвольный адрес в этом пути.
Есть ограничение, что значение должно быть 0перед тем, как вы его напишите (согласно первой строке в этом фрагменте), но это не должно значительно усложнить эксплуатацию. Вы можете легко перезаписать NOPв слоте задержки где-нибудь переход к регистру, который оказывается управляемым во время выполнения. В качестве альтернативы лучшим подходом было бы связывание этой записи OOB с упомянутым выше вызовом OOB; Вы перезаписываете один из адресов, которые мы можем использовать в качестве цели перехода, которая 0попадает в произвольную новую цель перехода.
Когда я кратко поэкспериментировал с этим примитивом, он не удался при вызове, getBufferпотому что ранее в функции он генерировал filenameпереход sprintf(filename, "VTS_%02d_0.IFO", indexForOOBW), а файл "VTS_1364283729_0.IFO"не существовал. Мы не можем создать этот файл , как правило , потому что код имеет максимальную длину имени файла , который мы запускаем в при попытке больших индексов , как это (я думаю , что это либо 15или 16байты). Вы можете обойти ограничение длины и по-прежнему использовать эту ошибку, чтобы повредить довольно большую область памяти, или может быть возможно испортить достаточно внутренних структур данных через другое переполнение, чтобы обманным путем заставить думать, что эти большие индексные файлы существуют. Так как мне не нужно было это для моей консоли, я не проанализировал эту возможность полностью и приступил просто к использованию вызова OOB.

Запуская эксплойт

На данный момент, у нас есть довольно четкий путь для использования большого переполнения чтения: мы перезаписываем fpIndexto 0xe07eи переполняем нашу полезную нагрузку в 0x1500014. Когда код затем индексируется в массив указателей на функции с использованием поврежденного fpIndex, он вызывает переход к нашей полезной нагрузке.

Вредное getDiscByteсостояние

Первая проблема, с которой мы сталкиваемся, заключается в том, что первое, что мы намереваемся испортить, fpIndex( 0x141284a), находится после currentDiscBytePointer( 0x1411fe4) и endDiscBytePointer( 0x1411fe8) в памяти, и поэтому те значения, которые влияют на вывод, getDiscByteбудут уже испорчены к тому времени, когда мы пытаемся поврежден fpIndexи, возможно, был перенаправлен, чтобы больше не указывать на память, установленную на содержимое нашего файла IFO.
Решение состоит в том, чтобы прервать запись, currentDiscBytePointerчтобы выяснить его значение в то время, когда мы собираемся его испортить, и убедиться, что мы просто перезаписываем то же значение, которое уже имело. Мы также можем изменить endDiscBytePointerна, 0xffffffffчтобы предотвратить вызов, getDiscByteInternalкоторый привел бы к еще большей путанице, если бы он был вызван, пока мы находимся в полуразрушенном состоянии.

Коррумпирование fpIndex

Теперь, когда переполнение достигает fpIndexи все еще копирует контролируемое содержимое из файла IFO, мы можем разбить его и посмотреть currentDiscBytePointerна момент его повреждения, чтобы найти место, из которого IFO мы копируем. Как только мы нашли это, мы можем изменить эти байты в файле на 7e e0(представление с прямым порядком байтов 0xe07e), чтобы указывать на нашу цель перехода.
Точно так же мы можем прервать запись, 0x1500014чтобы выяснить, откуда в файле будет скопирована наша полезная нагрузка, и установить для нее какое-либо значение заполнителя.
Теперь, запустив эксплойт и взломав вызов OOB ( 0x25e388), мы столкнулись с новой проблемой: индекс был переписан между нашим повреждением и его использованием для вызова. Если мы не можем избежать этой записи, это может стать тупиком для этого метода эксплуатации.
Прерывая запись fpIndexпосле нашего большого чтения, мы видим, что оно написано внутри этой функции по адресу 0x25E970:
int setFpIndex(void) { if (DAT_01412856 != 0) { if (DAT_0141284e == '\0') { if (DAT_01412854 == 0) { fpIndex = 3; } else { fpIndex = 4; } } else { if (DAT_01412854 == 0) { fpIndex = 5; } else { fpIndex = 6; } } return 0; } return -1;}
Заметьте, как не все пути пишут fpIndex? Если 16-разрядное значение в 0x1412856(которое мы также можем испортить при переполнении) установлено в значение 0, оно будет оставлено в fpIndexпокое и вернется, -1чтобы указать сбой.
Цепочка вызовов, которая ведет к, setFpIndexнаходится непосредственно перед вызовом OOB сама ( 0x25e378), и также нет проверки возвращаемого значения setFpIndex! Это означает, что мы можем обойти инициализацию fpIndexи все еще достичь вызова OOB, пока он все еще содержит наше искаженное значение:
callSetFpIndex(puVar6 + ((uint)DAT_01412841 - 1) * 8); (*(code *)(&PTR_LAB_005b9d40)[(uint)fpIndex])(puVar6 + ((uint)DAT_01412841 - 1) * 8);
Когерентность кэша

В этот момент мы переходим к памяти контролируемого содержимого, что должно означать выполнение произвольного кода! Однако мы записываем нашу полезную нагрузку в кэшированное сопоставление виртуальных адресов, а также выполняем ее оттуда, что создает два потенциальных источника сбоя на оборудовании, которое нам необходимо рассмотреть:
  • Полезная нагрузка, возможно, не была сброшена из кэша данных в основную память во время выполнения,
  • Кэш команд, возможно, не был очищен, поскольку полезная нагрузка достигла основной памяти, поэтому мы можем вместо этого выполнить устаревший кэш команд,
Первый - разрешимый: мы можем расширить нашу большую копию до максимально возможного размера ( 0xffff * 3 * 8) и, возможно, даже использовать другие большие копии для записи максимально возможного количества данных, чтобы гарантировать, что наша полезная нагрузка будет удалена из кэша данных на месте чего-то еще. Я придерживался этого максимально возможного размера в моем эксплойте, но вы могли бы точно отрегулировать это число, чтобы оптимизировать время загрузки на долю секунды, если бы вы были так склонны.
Вторая не очень разрешима. Поскольку мы не контролируем целевой адрес перехода, мы не можем вместо этого перейти к некешированному виртуальному адресу, чтобы обойти кэш инструкций, и, насколько мне известно, нет никакого способа манипулировать программой для динамической загрузки нового кода, вызывающего очистку кэша инструкций после того, как наша полезная нагрузка имеет было написано. Однако, на самом деле, это даже не проблема, потому что кеш команд сбрасывается во время запуска, и наша полезная нагрузка не перезаписывает какой-либо существующий код, поэтому не будет никакого устаревшего кеша команд, покрывающего адрес полезной нагрузки (процессор PS2 не не имеет спекулятивного выполнения или чего-либо еще, что могло бы привести к созданию записей кэша команд по не архитектурно выполненным путям).
Учитывая, что согласованность кэша не является проблемой, я попробовал простую полезную нагрузку, которая просто загружает меню браузера, чтобы убедиться, что полезная нагрузка будет выполняться на оборудовании, и записала тестовый диск:
void _start(void) { //Exit(0); asm volatile("la $v1, 0x04; la $a0, 0; syscall 0x04");}
Это сработало!

Начальная полезная нагрузка

Полезная нагрузка должна прочитать ELF с диска и затем выполнить его. Это кажется простым, но есть несколько разных соображений:
  • Как не допустить вмешательства других потоков в данные, которые мы пишем,
  • Как читать данные с диска,
  • Куда читать данные,
  • Как выполнить данные,
Я начал с базового, crt0.sкоторый использовал бы ExecPS2системный вызов для запуска main, переинициализируя внутреннее состояние ядра и, таким образом, уничтожая другие потоки, чтобы предотвратить их повреждение всей памяти, используемой нашей полезной нагрузкой:
.section .text.startup.global _start_start: #la $a0, 0x7f #la $v1, 0x01 #syscall 0x01 # ResetEE la $a0, main la $a1, 0 la $a2, 0 la $a3, 0.global ExecPS2ExecPS2: la $v1, 7 syscall 7 # ExecPS2
Моей первой попыткой загрузить ELF с диска было использование тех же самых высокоуровневых вызовов функций, которые использовались для чтения данных из файла IFO ( pointToIFO( 0x25c880), за которым следовал getDiscDataжелаемый размер). Когда я попытался это сделать, он смог получить только один сектор ( 0x800байты) данных, вероятно, из-за предыдущего повреждения из-за переполнения буфера.
Вместо того, чтобы попытаться это исправить, я решил использовать функцию самого низкого уровня getBufferInternal( 0x2986a0), которая просто вызывает SifCallRpc( 0x2096e8), чтобы запросить сопроцессор IOP для выборки данных, а затем ожидает завершения. Это сработало отлично.
Следующее соображение - куда загрузить файл ELF. Выполнение readelf -lскажет нам, что цель не является независимым от позиции двоичным файлом и должна быть загружена в определенном месте:
readelf -l BOOT.ELFElf file type is EXEC (Executable file)Entry point 0x1d00008There is 1 program header, starting at offset 52Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000060 0x01ca1450 0x01ca1450 0x5ed6d 0x5ee30 RWE 0x10
Я придумал следующее, что успешно загрузило мой целевой ELF в PCSX2:
#define SifIopReset ((void (*)(char *, int))0x84fe0)#define SifIopSync ((int (*)(void))0x85110)#define SifInitRpc ((void (*)(int))0x84180)#define SifExitRpc ((void (*)(void))0x84310)#define PAYLOAD_SIZE 0x5ed6d#define MEM_SIZE 0x5ee30#define DESTINATION 0x01ca1450#define ENTRY 0x1d00008__attribute__((noreturn)) int main(void) { // Target relative to VIDEO_TS.IFO (starting DVDVIDEO-VMG...) int lbaOffset = 8338 - 285; char ignored[] = ""; getBufferInternal(ignored, 0, lbaOffset, (void *)DESTINATION - 0x60, (PAYLOAD_SIZE + 0x60 + 0x7ff) / 0x800, 0); // Init BSS section for(i = 0; i < MEM_SIZE - PAYLOAD_SIZE; i++) { ((char *)DESTINATION + PAYLOAD_SIZE)[i] = 0; } SifIopReset(0, 0); while(!SifIopSync()); SifInitRpc(0); SifExitRpc(); asm volatile("la $v1, 0x64; la $a0, 0; syscall 0x64"); // FlushCache data writeback asm volatile("la $v1, 0x64; la $a0, 2; syscall 0x64"); // FlushCache instruction invalidate //void ExecPS2(void* entry, void* gp, int argc, char** argv); //ExecPS2((void *)ENTRY, 0, 0, 0); asm volatile("la $a0, 0x1d00008; la $a1, 0; la $a2, 0; la $a3, 0; la $v1, 7; syscall 7");}

Улучшения полезной нагрузки

Есть ряд вещей, не идеальных с начальной полезной нагрузкой. Он не очень переносим, ​​потому что мы полагаемся на жесткое кодирование как смещения из файла IFO в файл полезной нагрузки, так и базового адреса целевого ELF. Мы также полагаемся на целевой адрес загрузки ELF, не перекрывающийся ни с одной из функций, которые мы все еще вызываем во время загрузки и загрузки.

2 этап загрузки

Чтобы сделать вышеупомянутые улучшения, нам нужно больше места. Начальная полезная нагрузка (в настоящее время называется стадией 1) расположена со смещением 0x2bb4в файле IFO, а fpIndexзначение искажения - в 0x2faa, поэтому мы можем использовать только 0x2faa - 0x2bb4 = 1014байты непрерывного пространства. Мы могли бы рассмотреть разбрасывание битов полезной нагрузки в более ранних или более поздних местах в файле и просто перейти к ним, но это довольно опасно сделать, поскольку трудно предположить, останется ли наша полезная нагрузка неизменной между записью ее с переполнением и временем мы выполняем это: части полезной нагрузки могли быть переписаны так же, как fpIndexизначально была переписана наша поврежденная .
Вместо этого мы просто сделаем этап 1 как можно меньшим и загрузим этап 2, где мы сможем реализовать хороший загрузчик ELF без каких-либо ограничений пространства.
После того, как этап 1 вызван ExecPS2для уничтожения других потоков, как и раньше, мы загрузим этап 2 с конца файла IFO со смещением 0x3000до конца ОЗУ EE, очистим кэш и затем запустим его. Мы также установим стек в ОЗУ scatchpad, чтобы он не перекрывался ни с одним разделом ELF:
load: la $a0, 0 la $a1, 0 # 0 = VIDEO_TS.IFO, 1 = VTS_01_0.IFO la $a2, 0x3000 / 0x800 # lba offset in file la $a3, payload # Destination la $t0, 0x800 / 0x800 # Count la $t1, 0 la $v0, getBufferInternal jalr $v0 nopboot: la $v1, 0x64; la $a0, 0; syscall 0x64 # FlushCache data writeback la $v1, 0x64; la $a0, 2; syscall 0x64 # FlushCache instruction invalidate # Point stack to end of scratchpad RAM la $sp, 0x70004000 # Execute from relocated place la $v0, ENTRY j $v0 nop
Этап 2 теперь может иметь произвольный размер C-кода, поскольку нет фиксированного ограничения пространства.

Нахождение файла полезной нагрузки

Чтобы избежать необходимости жестко кодировать смещение целевого ELF, я решил сохранить его VTS_02_0.IFOи использовать существующие функции, которые я уже перевернул, для обновления внутренних структур данных, чтобы они указывали на LBA нового файла:
// Point to VTS_02_0.IFO pointToIFO(2, 0, 0); // Force a read from VTS_02_0.IFO char head[64]; getDiscData(64, &head); // Now reads from VTS_02_0.IFO getBufferInternal("", 1, sectorOffset, buffer, sectorCount, 0);

Загрузка ELF

Я снял ограничение необходимости жесткого кодирования адреса загрузки ELF, динамически читая его через заголовок ELF, основываясь на коде из uLaunchELF , но адаптирован для чтения с диска:
elf_header_t eh; readData(&eh, 0, sizeof(elf_header_t)); elf_pheader_t eph[eh.phnum]; readData(&eph, eh.phoff, sizeof(elf_pheader_t) * eh.phnum); for (i = 0; i < eh.phnum; i++) { if (eph[i].type != ELF_PT_LOAD) continue; readData(eph[i].vaddr, eph[i].offset, eph[i].filesz); if(eph[i].memsz > eph[i].filesz) memset(eph[i].vaddr + eph[i].filesz, 0, eph[i].memsz - eph[i].filesz); }
Это оно! Мы можем надежно выполнить ELF-файл VTS_02_0.IFOна диске, без каких-либо ограничений по его базовому адресу или необходимости заранее задавать конкретные детали о нем. Полный код доступен на GitHub .

Дальнейшие разработки

Хотя сам эксплойт уже завершен, в настоящее время мы не можем сделать ничего особенного, кроме загрузки небольших автономных доморощенных игр, таких как Tetris.

Многофайловый доморощенный

В идеале было бы неплохо, чтобы эксплойт загрузился в меню, которое позволяло бы вам выбрать другую самодельную программу из нескольких, сохраненных на одном диске, и которое могло бы затем загрузить дополнительные данные с диска (такие как загрузка эмулятора). ROM). К сожалению, код файловой системы PS2SDK и, как следствие, все домашние версии PS2 не поддерживает DVD-видео. Поскольку DVD-видео - это единственный тип диска, который могут быть записаны неизмененными консолями, который мы можем записать, я предполагаю, что все ранее были удовлетворены только загрузкой данных через USB.
Я решил показать эксплойт некоторым энтузиастам PS2 в надежде, что это может вдохновить кого-то взглянуть, и Уйюлиан был любезен потратить некоторое время, добавив поддержку и отправив запрос на извлечение . Если вы перекомпилируете PS2SDK с этим исправлением, а затем перекомпилируете свое домашнее приложение, оно будет поддерживать загрузку файлов DVD-видео с cdfsустройства.
Это не идеальное решение, так как у нас нет исходного кода для всего домашнего пивовара PS2, произведенного за последние 20 лет, но также возможно выполнить двоичное исправление домашнего кофе, чтобы вручную заменить cdvd.irxмодуль IOP новым, чтобы добавить поддержку DVD-видео. , Например, 'Howling Wolf & Chelsea' исправил эмулятор SNES Station с закрытым исходным кодом, позволив мне сделать следующее демо (особая благодарность!):


Загрузка резервных копий с помощью ESR

Уже существует инструмент (ESR patcher), который исправляет игры, чтобы они выглядели как DVD-видео, чтобы они могли быть приняты «mechacon» (процессор безопасности), и связанную программу-загрузчик (ESR), которая загружает эти пропатченные «видеодиски» , Объединение в цепочку этого нового эксплойта с этим загрузчиком ESR позволит вам исправлять резервные копии, чтобы их можно было просто записывать и запускать на консоли из загрузки, как если бы они были официальными дисками.
На самом деле я не хочу отвечать за поддержку инструмента, который делает это, поэтому я не включаю в него какой-либо код для репо, но суть его можно объяснить довольно быстро, поэтому я просто предоставьте некоторые заметки, объясняющие, как это сделать:
ESR патчер будет два файла, VIDEO_TS.IFOи VIDEO_TS.BUP, в UDF файловой системы диска. Нашему эксплойту требуются два файла с именами VIDEO_TS.IFOи VTS_01_0.IFO, поэтому просто замените VIDEO_TS.BUPстроку, с которой он пишет, VTS_01_0.IFOчтобы создать структуру файловой системы, которая нам нужна.
Атрибуты, которые нам нужны для этих файлов, - это размер (4 байта) и позиция LBA (2 байта). В спецификации UDF эти поля являются смежными, и LBA хранится как смещение от дескриптора каталога, содержащего эти поля ( в нашем случае это VIDEO_TSLBA 134). Инструмент создает эти файлы с размером 2032байтов, LBA 138и 139, таким образом, интересующие нас шаблоны байтов:
VIDEO_TS.IFO: f0 07 00 00 0a 00VIDEO_TS.BUP: f0 07 00 00 0b 00
Содержание файловой системы ISO 9660, используемой в играх, как правило, начинается примерно с 260, что, по моему мнению, является требованием Sony. Это здорово для нас, так как это означает, что у нас есть примерно 250 КБ ((262-137) * 0x800)места для размещения файлов эксплойтов и загрузчика, и нам нужна только часть этого. Учитывая такое количество места, можно было бы даже включить какое-нибудь чит-меню Action Replay или что-то на диске, что могло бы стать забавным будущим проектом.
На VIDEO_TS.IFOуровне LBA 138 нам просто нужно увеличить его размер 14336и скопировать содержимое файла 138 * 0x800 = 0x45000в ISO. Наше следующее свободное место будет на 7 секторов позже на LBA 145 и будет хранить содержимое нашего 12288байтового VTS_01_0.IFOфайла. Наконец, программа загрузки ESR может быть скопирована в следующий доступный сектор по адресу 151; мы не станем создавать для него запись в файловой системе UDF, так как в любом случае нам уже пришлось вручную изменять ISO.
Таким образом, исправления, которые мы должны сделать для данных UDF, чтобы добавить наш эксплойт в исправленную игру:
VIDEO_TS.BUP -> VTS_01_0.IFO (to rename the file)f0 07 00 00 0a 00 -> 00 38 00 00 0a 00 (VIDEO_TS.IFO filesize to 14336)0x45000: paste VIDEO_TS.IFO exploit contents (compiled with LOAD_FROM_SECTOR_RELATIVE_TO_VIDEO_TS_IFO so as to boot the ELF from disc at 0x4B800)f0 07 00 00 0b 00 -> 00 30 00 00 11 00 (VIDEO_TS.BUP/VTS_01_0.IFO LBA to 145 and filesize to 12288)0x48800: paste VTS_01_0.IFO contents0x4B800: paste loader ELF
Я сделал это только один раз, вручную, но было бы довольно просто изменить инструмент для изменения этих патчей. В результате получилась довольно крутая демонстрация, демонстрирующая полное поражение модели безопасности защиты от копирования PlayStation 2:
ffgriever работает над новой версией ESR, чтобы убрать надоедливую заставку и мерцающие цвета



оптимизация

Как уже упоминалось ранее, эксплойт, вероятно, можно было бы оптимизировать, чтобы он загружался на доли секунды быстрее за счет уменьшения размера переполнения. Также стоит отметить, что одна из причин, по которой экран мерцает при срабатывании эксплойта, заключается в том, что я случайно закодировал свое базовое DVD-видео в NTSC, и поэтому некоторые из этих мерцаний являются артефактом переключения с PAL на NTSC обратно на PAL. Если это вас беспокоит, вы можете вместо этого заново создать эксплойт на основе базового DVD PAL. Некоторые из отображаемых странных белых шаблонов, вероятно, являются результатом переполнения, и вы можете удалить его, манипулируя большим количеством данных переполнения.

Портирование на другие версии прошивки

Процесс портирования довольно трудоемкий, потому что вам нужно вручную определить все соответствующие функции, чтобы найти правильные смещения, определить подходящую цель перехода и заново связать полезную нагрузку загрузчика с новыми адресами. Можно было бы автоматизировать некоторые из них с помощью сигнатур декомпиляции, но сейчас это полностью ручной процесс, который занимает не менее 1 часа. Сначала я портировал на 3.11J и загрузил свои заметки по портированию в репозиторий на случай, если кто-то захочет попробовать этот процесс.

Гибридные диски

Поэтому я просто объединил поддержку 3.10 и 3.11 в единый гибридный ISO. Причина этого заключается в том, что разные смещения в файле IFO повреждают разные смещения в памяти, а вещи, которые мы искажаем, например, fpIndexимеют разные смещения в разных версиях, поэтому мы можем устанавливать разные значения.
Однако на самом деле это даже лучше, чем это, потому что помните, как мы currentDiscBytePointerсначала повредили в переполнении? Это означает, что до тех пор, пока currentDiscBytePointerне будет совпадать ни в одной версии прошивки, мы можем перенести повреждение в другое место, чтобы гарантировать, что ни одна из наших вещей из разных эксплойтов в IFO не перекрывается. Это дает нам хороший шанс, что мы можем потенциально использовать все прошивки на одном диске; время покажет, если это так.

Вывод

Мне удалось использовать DVD-плеер PlayStation 2, чтобы я мог запускать свои собственные записанные домашние диски, просто вставляя их и загружаясь, так же, как вы запускаете официальный диск.
Хотя я эксплуатировал только версию 3.10E, так как это версия на консоли, которой я владею, это довольно поздняя версия (3.11J была последней выпущенной версией), и поэтому я уверен, что все другие версии также содержат эти же тривиальные переполнения буфера при разборе IFO. Если это окажется трудным для использования в других версиях прошивки, я также уверен, что, возможно, существуют более общие уязвимости, такие как переполнение буфера стека, если вы обращаетесь глубже, в конце концов, я только дошел до обратного инжиниринга первоначального анализа IFO прежде чем я обнаружил достаточно уязвимостей для моего эксплойта. Я надеюсь, что эта статья и эти демонстрации вдохновят других на то, чтобы взломать версии микропрограмм их собственных консолей и поделиться своими методами в централизованном репо для сообщества.
Идея загрузки дисков без взаимодействия с пользователем была чрезвычайно привлекательной для меня, но если вместо этого вы цените наличие одного диска с совместимостью с несколькими различными версиями прошивки, возможно, будет возможно создать DVD-видео, которое начинается с меню DVD, где вы выбираете ваша версия, и он воспроизводит другое видео, которое запускает другой эксплойт, в зависимости от выбора пользователя.
В заключение, на самом деле нет никакой причины, по которой этот общий сценарий атаки является специфическим для PlayStation 2, поскольку все поколения поддерживают некоторую комбинацию записанных носителей: от поддержки CD в PlayStation 1 до поддержки Blu-ray в PlayStation 3 и 4 с PlayStation 4 только убрав поддержку CD. Взлом PS4 с помощью Blu-ray BD-J уже давно обсуждается как идея для точки входа. Это может быть чем-то, что мне было бы интересно изучить для долгосрочного будущего проекта: представьте себе возможность записывать свои собственные игры для PlayStation для всех поколений; 1 вниз, 3 идти ...
С благодарностью krHacken, uyjulian, 'Howling Wolf & Chelsea' и ffgriver.
__________________
https://drive.google.com/file/d/1WaN...ew?usp=sharingразбудить когда весна придётhttps://drive.google.com/file/d/190i...IPR_nCEga/view
fiuke вне форума  
Ответить с цитированием
Эти 3 пользователи сказали Спасибо fiuke за это сообщение:
Старый 08.08.2020, 20:10   #3
Легенды PSX Planet
 
Аватар для shamalama
 
Регистрация: 20.04.2010
Пол: Мужской Мужской
Сообщений: 9,160
shamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспоримаshamalama репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

по теме -
__________________
[SIZE=1][I][B][FONT=Georgia][COLOR=SlateGray]"Рукописи не горят", игровой программный код - не устаревает.[/COLOR][/FONT][/B][/I][/SIZE]
shamalama вне форума  
Ответить с цитированием
Эти 2 пользователи сказали Спасибо shamalama за это сообщение:
Старый 14.09.2020, 19:34   #4
Person Of The Community
 
Аватар для fiuke
 
Регистрация: 31.12.2016
Пол: Мужской Мужской
Сообщений: 1,687
fiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

https://www.psx-place.com/threads/up...pported.30204/

тЭстируваем отписЫваемся

переводик для танкистов
Почти половина этого года закончилась, но 2020 год был пока странным, не так ли? Сначала
мы потеряли одного из наших величайших спортсменов в истории баскетбола, который также был великим отцом и человеком
- вскоре после этого мы все еще боремся со всемирной вспышкой вируса Короны -
«и теперь вы говорите мне, что все еще есть люди, выпускающие совершенно новые эксплойты. для PS2, выпущенной в 2020 году?!?!?! "
Да, вы правильно прочитали. Сегодня
известный разработчик @CTurt
демонстрирует свои новейшие достижения в « Взломе PS2 ». Хотя его
предыдущий метод вызвал критику из-за его ограничений с использованием официального интерпретатора Sony PS2 YaBasic Interpreter.
, который был включен только в самые первые демо-диски PS2, выпущенные только для региона PAL,
разработчик @CTurt
был так любезен, что нашел
еще лучшую
отправную точку для запуска Homebrew на немодифицированной PS2 . И знаете что, он нашел способ добиться именно этого,
полностью используя функциональные возможности DVD-видеоплеера с консоли PS2.
И это даже лучше. Вы можете не только наслаждаться всеми старыми, но все еще хорошими
Homebrews и эмуляторами,
выпущенными в былые времена, этот эксплойт также поддерживает запуск ваших законно полученных резервных копий !
И все это БЕЗ необходимости модифицированной карты памяти
, без использования старых и грязных
Поменять местами Magic Trick
или
открыть PS2 и установить Modchip,
как многие делали в старые времена? Звучит не так круто, или что вы думаете сейчас, читая это?
Я имел в виду именно это, когда сказал, что 2020 год - пока что странный год. : P


ОБНОВЛЕНИЕ-2: FreeDVDBoot теперь поддерживает КАЖДУЮ модель Slim "PStwo"! Проверьте вкладку «Дополнительная информация» для получения дополнительной информации и частых обновлений.

ОБНОВЛЕНИЕ-3: Добавлена ​​поддержка для DVD версии "2.10", что делает его самой первой прошивкой для поддержки FAT и обнаруживает больше уязвимостей для большинства консолей PS2 FAT от версий DVD Player 1.00 до 2.13. Проверьте вкладку «Дополнительная информация» для получения дополнительной информации и частых обновлений.


Наш модератор @ Fin9ersMcGee любезно предоставил руководство по установке FreeMCBoot (FMCB) в сочетании с новейшим эксплойтом FreeDVDBoot, которое предоставит вам простое пошаговое руководство по запуску FreeDVDBoot на вашей PS2. Посмотрите здесь !

Посмотрите также его новое
универсальное руководствоесли вы новичок в PS2 Hacking!
Скриншот работает под перекомпилировать версию uLaunchELF на немодифицированной PS2 с использованием новейшего FreeDVDBoot Exploit по @CTurt [Источник: ]



  • Ранее я обсуждал, что на PlayStation 2 нет хороших программных эксплойтов для запуска homebrew. Вам нужно либо приобрести карту памяти с предустановленным эксплойтом, либо открыть консоль, чтобы заблокировать датчики лотка для дисков, либо установить модчип. Как самая продаваемая консоль всех времен, она заслуживает лучших хаков.

    Моя первая попытка решить эту проблему заключалась в использовании интерпретатора BASIC.это пришло вместе с ранними PS2 региона PAL. Хотя мне удалось создать первый программный эксплойт точки входа, который может быть запущен с использованием только оборудования, поставляемого с консолью, атака в значительной степени подверглась критике из-за необходимости вводить полезную нагрузку вручную через контроллер или клавиатуру и ограничение быть только PAL. Я решил списать этот эксплойт как непрактичный, и поэтому поиски лучшего сценария атаки для PlayStation 2 продолжились

    . PlayStation 2 имеет другие источники ненадежной информации, которые мы могли бы атаковать; игры, которые поддерживают многопользовательскую онлайн-игру или USB-накопители, почти наверняка могут быть использованы. Но в отличие от Nintendo 64, где у нас действительно нет другого выбора, кроме как использовать игры через интерфейсы, такие как модемы.PlayStation 2 имеет одно ключевое отличие: ее основным входом являются оптические носители (CD / DVD диски), формат, который любой может легко записать с помощью доступного потребительского оборудования. Остается интересный вопрос, который я хотел решить с детства:
    Можно ли просто записать наши собственные домашние игры и запускать их на немодифицированной консоли так же, как мы запускаем официальные диски (без каких-либо действий с пользователем, таких как замена диска или запуск сетевого эксплойта в игре)?
    В конечном итоге мне удалось достичь своей цели, воспользовавшись функциональностью DVD-плеера консоли. В этом сообщении блога будут описаны технические детали и процесс восстановления и эксплуатации DVD-плеера. Весь мой код доступен на GitHub .


    Демонстрационное видео нового эксплойта PlayStation 2 через DVD-плеер, который позволяет записывать самодельные игры и запускать их на немодифицированной консоли так же, как с официальными дисками. Это демо показывает результат на PS2SDK патч , который добавляет поддержку для чтения DVD - видеодиски (uLaunchELF теперь можно загрузить хомбрю с диска, а теперь эмуляторы может загружать диски с диска).

Источник: Twitter @CTurtE
Скачать .iso-Image: прекомпилированный ISOs
Полного сообщение в блоге: FreeDVDBoot
FreeDVDBoot на GitHub: CTurt
Канал YouTube: CTurt


__________________
https://drive.google.com/file/d/1WaN...ew?usp=sharingразбудить когда весна придётhttps://drive.google.com/file/d/190i...IPR_nCEga/view
fiuke вне форума  
Ответить с цитированием
Старый 15.09.2020, 13:18   #5
PSX Planet Elite Supporter
 
Аватар для rashan
 
Регистрация: 21.02.2015
Адрес: Королевство Швеция
Пол: Мужской Мужской
Сообщений: 4,524
rashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспоримаrashan репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

Так же не забываем про Фортуну для "неломаемых" слимок https://www.psx-place.com/threads/fo...exploit.27226/
__________________

Последний раз редактировалось rashan; 21.09.2020 в 23:13.
rashan вне форума  
Ответить с цитированием
Старый 15.09.2020, 15:33   #6
Person Of The Community
 
Аватар для fiuke
 
Регистрация: 31.12.2016
Пол: Мужской Мужской
Сообщений: 1,687
fiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

там уже под фатку собрали версию.надо только смотреть номер плеера итд.у меня с чипом и хер проверить.
__________________
https://drive.google.com/file/d/1WaN...ew?usp=sharingразбудить когда весна придётhttps://drive.google.com/file/d/190i...IPR_nCEga/view
fiuke вне форума  
Ответить с цитированием
Старый 15.09.2020, 15:58   #7
PSX Planet Elite Supporter
 
Аватар для MFS
 
Регистрация: 02.06.2011
Пол: Неизвестно
Сообщений: 1,349
MFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

Один только вопрос кому это нужно в 2020м? Кто в своё время активно играл на пс2, тот давно и так прочиповал, а кто вышел из игры тому это щас и даром не нужно. Короче взлом чисто из спортивного интереса.

Последний раз редактировалось MFS; 15.09.2020 в 21:54.
MFS вне форума  
Ответить с цитированием
Старый 16.09.2020, 12:31   #8
Person Of The Community
 
Аватар для fiuke
 
Регистрация: 31.12.2016
Пол: Мужской Мужской
Сообщений: 1,687
fiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

Цитата:
Сообщение от MFS Посмотреть сообщение
Один только вопрос кому это нужно в 2020м?
не соглашусь. как мультиплатформа для эмуляторов такая плойка вРеале выигрывает у пека и тем-более у смартафонов...
а без улаунчера сиё недоступно.ну а что касается игр тут уже имеются всяческие Ымуляторы и как грится делохозяйское.
__________________
https://drive.google.com/file/d/1WaN...ew?usp=sharingразбудить когда весна придётhttps://drive.google.com/file/d/190i...IPR_nCEga/view
fiuke вне форума  
Ответить с цитированием
Старый 16.09.2020, 20:24   #9
PSX Planet Elite Supporter
 
Аватар для MFS
 
Регистрация: 02.06.2011
Пол: Неизвестно
Сообщений: 1,349
MFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспоримаMFS репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

Как эмуляторная платформа-то? Да ну, всё с ней не слава божечке. Ни один хитовый мк на сеге без глюков не идёт, про снес и говорить не приходится. (
MFS вне форума  
Ответить с цитированием
Старый 16.09.2020, 20:41   #10
Person Of The Community
 
Аватар для fiuke
 
Регистрация: 31.12.2016
Пол: Мужской Мужской
Сообщений: 1,687
fiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспоримаfiuke репутация неоспорима
По умолчанию Ответ: Новый взлом PS2             

Цитата:
Сообщение от MFS Посмотреть сообщение
Ни один хитовый мк на сеге без глюков не идёт
честно говоря и на PS4 и хоть ГДЕ в это играть невозможно без джоя от MEGADRIVE 6ти кнопочного соответсно!
__________________
https://drive.google.com/file/d/1WaN...ew?usp=sharingразбудить когда весна придётhttps://drive.google.com/file/d/190i...IPR_nCEga/view
fiuke вне форума  
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Playstation 3 Взлом TylerDurden Технологии 90 04.08.2021 03:36
Взлом серверов Battlefield 3 Allleks Game World News 0 02.10.2011 17:02
Еще один крупный взлом сервиса Sony Allleks Game World News 6 06.06.2011 15:06
Sony расследует "взлом" PS3 TylerDurden Game World News 130 21.09.2010 22:34


Часовой пояс GMT +3, время: 08:07.


© PSX Planet Community 2003-2023

PSX Planet Banner W.M.C. Models Banner