можно ли нарушить последовательность выполнения команд в программе для чего это может потребоваться
Большая Энциклопедия Нефти и Газа
Естественный порядок выполнения команд может быть нарушен: I) командами перехода ( командами передачи управления); 2) командами замещения ( Выполнение), 3) сменой состояния программы; 4) запросами прерывания программы. [2]
Естественный порядок выполнения команд может быть нарушен: 1) командами перехода ( командами передачи управления); 2) командами замещения ( Выполнение); 3) сменой состояния программы; 4) запросами прерывания программы ( см. гл. [4]
Естественный порядок выполнения команд может быть изменен только в результате подачи команды, называемой командой передачи управления. Различают команды безусловных и условных переходов. Команда безусловного перехода передает управление команде, адрес которой указан в поле операнда команды безусловного перехода. [5]
Чем отличается естественный порядок выполнения команд от принудительного. [6]
Иногда возникает необходимость нарушать естественный порядок выполнения команд независимо от каких-либо условий, как это имело место в примере 4.3 после вычисления у по первой из формул. [9]
В случае необходимости изменить естественный порядок выполнения команд переход к следующей команде осуществляют специальной командой перехода. В этом случае в счетчик адресов заносится новый адрес В, по которому следует обратиться в память за следующей командой. [11]
Команды передачи управления прерывают естественный порядок выполнения команд и однозначно определяют адрес следующей команды. При выполнении команд передачи управления результат предыдущего действия сохраняется. [12]
В машине Урал-11 используется обычный естественный порядок выполнения команд с возможностью обработки 30 сигналов запроса на прерывание. [13]
Прерывания в конвейеризированных процессорах
Наверняка вы знаете, что такое прерывания. Возможно, даже интересовались устройством процессора. Почти наверняка вы нигде не видели внятный рассказ про то, как именно процессор обнаруживает прерывание, переходит к обработчику и, самое главное, возвращается из него именно туда, куда положено.
Я писал эту статью год. Изначально она была рассчитана на хардварщиков. Понимание того, что я ее никогда не закончу, а также жажда славы и желание, чтобы ее прочло больше десяти человек, заставило меня адаптировать ее для относительно широкой аудитории, повыкидывав схемы, куски кода на Верилоге и километры временных диаграмм.
Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Немного терминологии: процессор, процессы и прерывания
Процессор с параллельным выполнением команд может выполнять несколько команд одновременно. Например, процессор с четырехстадийным конвейером команд может одновременно записывать результаты первой команды, испонять вторую, декодировать третью и выбирать из памяти четвертую.
Точные и неточные прерывания
Программные прерывания и исключения могут быть точными или неточными. В некоторых случаях без точных исключений просто не обойтись — например, если в процессоре есть MMU (тогда, если случается промах TLB, управление передается соответствующему обработчику исключения, который программно добавляет нужную страницу в TLB, после чего должна быть возможность заново выполнить команду, вызвавшую промах).
В микроконтроллерах исключения могут быть неточными. Например, если команда сохранения вызвала исключение из-за ошибки памяти, то вместо того, чтобы пытаться как-то исправить ошибку и повторно выполнить эту команду, можно просто перезагрузить микроконтроллер и начать выполнять программу заново (то есть сделать то же самое, что делает сторожевой таймер, когда программа зависла).
В большинстве учебников по архитектуре компьютеров (включая классику типа Patterson&Hennessy и Hennessy&Patterson) точные прерывания обходятся стороной. Кроме того, неточные прерывания не представляют никакого интереса. По-моему, это отличные причины продолжить рассказ именно про точные прерывания.
Точные прерывания в процессорах с последовательным выполнением команд
Для процессоров с последовательным выполнением команд реализация точных прерываний довольно проста, поэтому представляется логичным начать с нее. Поскольку в каждый момент времени выполняется только одна команда, то в момент обнаружения прерывания все команды, предшествующие прерываемой, уже выполнены, а последующие даже не начаты.
Таким образом, для реализации точных прерываний в таких процессорах достаточно убедиться, что прерываемая команда никогда не обновляет состояние процесса до тех пор, пока не станет ясно, вызвала она исключение или нет.
Место, где процессор должен определить, позволить ли команде обновить состояние процесса или нет, называется точкой фиксации результатов (commit point). Если процессор сохраняет результаты команды, то есть команда не вызвала исключение, то говорят, что эта команда зафиксирована (на сленге — закоммичена).
Как можно догадаться, эту проблему довольно сложно решить, поэтому во многих процессорах для простоты реализованы «почти точные» прерывания, то есть точными сделаны все прерывания, кроме исключений, вызванных ошибками памяти при записи результатов. В этом случае точка фиксации результатов находится между третьим и четвертым этапами цикла команды.
Важно! Нужно помнить, что счетчик команд тоже должен обновляться строго после точки фиксации результатов. При этом он изменяется вне зависимости от того, зафиксирована команда или нет — в него записывается либо адрес следующей команды, либо вектор прерывания, либо РАВ.
Точные прерывания в процессорах с параллельным выполнением команд
На сегодняшний день процессоров с последовательным выполнением команд почти не осталось (могу вспомнить разве что аналоги интеловского 8051) — их вытеснили процессоры с параллельным выполнением команд, обеспечивающие при прочих равных более высокую производительность. Простейший процессор с параллельным выполнением команд — процессор с конвейером команд (instruction pipeline).
Несмотря на многочисленные преимущества, конвейер команд значительно усложняет реализацию точных прерываний, чем много десятков лет печалит разработчиков.
В процессоре с последовательным выполнением команд этапы цикла команды зависят друг от друга. Простейший пример — счетчик команд. Вначале он используется на этапе выборки (как адрес в памяти, откуда должна быть прочитана команда), затем на этапе исполнения (для вычисления его следующего значения), и потом, если команда зафиксирована, он обновляется на этапе записи результатов. Это приводит к тому, что нельзя выбрать следующую команду до тех пор, пока предыдущая не завершит последний этап и не обновит счетчик команд. То же самое относится и ко всем прочим сигналам внутри процессора.
Процессор с конвейером команд можно получить из процессора с последовательным выполнением команд, если сделать так, чтобы каждый этап цикла команды был независим от предыдущих и последующих этапов.
Обратите внимание на столбец СК («счетчик команд»). Его значение меняется каждый такт и определяет адрес в памяти, откуда выбирается команда.
Внимательный читатель уже заметил небольшую неувязочку — для обеспечения точности прерываний первая команда не имеет права изменить счетчик команд раньше четвертого такта. Чтобы это исправить, мы должны перенести счетчик команд за точку фиксации результата (предположим, что она находится между третьим и четвертым этапами):
Производительность процессора немного упала, не так ли? На самом деле, решение лежит на поверхности – нам нужно два счетчика команд! Один должен находиться в начале конвейера и указывать, откуда читать команды, второй – в конце, и указывать на ту команду, которая должна быть зафиксирована следующей.
Первый называется «спекулятивным», второй – «архитектурным». Чаще всего спекулятивный счетчик команд не существует сам по себе, а встроен в предсказатель переходов. Выглядит это вот так:
На этом все. Разумеется, показаный четырехстадийный конвейер прост до невозможности. На самом деле, некоторые команды могут исполняться более одного такта, и даже простой микроконтроллер умеет завершать их не в том порядке, в котором он запустил их на выполнение, при этом обеспечивая точность прерываний. Однако общий принцип организации прерываний, смею вас заверить, остается тем же.
Может ли процессор изменять порядок инструкций в программе?
Для того, чтобы использовать ресурсы системы эффективно, множество компиляторов и процессоры меняют порядок выполнения операций.
Хотя я думаю есть плагин для GCC который под конкретную архитектуру позволяет сделать максимально эффективный бинарник.
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Option. делают оптимизации кода
Данные оптимизации не касаются тех, что будет производить проц
самый полный набор у первого(там только ядро ОС).
А там нет такого уж сложного анализа. Процессор преобразует каждую команду x86 в команду VLIW (Very Long Instruction Word — что делать каждому из блоков процессора), а затем пробует спрессовывать эти команды вместе. Насколько мне известно, первым на x86 такой механизм был предложен в процессоре Transmeta Crusoe, за пару лет до Intel.
А ещё подобное налаживание зависимостей позволяет процессору делать что-то сразу же, а не ждать данных из медленной памяти. А ещё — патчить ошибки процессора :). Не помню, запатчили так Meltdown или нет.
Подсистема памяти тоже может так работать — на x86 я не могу привести примеры, но представьте себе: одну строку кэша сбросило в память, а вторую держит.
Может, если это заложено на уровне архитектуры.
В современных процессорах есть даже возможность парралельно выполнять условие и цепочки при да/нет, а потом когда условие выполнилось, взять готовый результат нужной цепочки.
Архитектура PlayStation 3, часть 4: Борьба с пиратством
Эта часть является последней в данной серии переводов. По сути, осталось рассказать про игры (а точнее, их разработку и распространение) и борьбу с пиратством (для многих, пожалуй, самое интересное). Поэтому оба раздела были объединены в эту часть, чтобы весь переведенный материал не пропадал впустую.
7. Игры
Этот раздел охватывает темы, связанные с разработкой, распространением и обслуживанием игр.
7.1. Экосистема разработки ПО
Поскольку эта консоль объединяет в себе технологии различных компаний, включая продукты, которые уже продаются на других рынках (например, GPU-линейка GeForce 7 от Nvidia для ПК), то разработчики были завалены множеством различных инструментов для разработки своего ПО. Это не означает, что разработка была легкой, но это было лучше того, что было во времена ассемблера.
Для программирования Cell IBM и Sony выпустили отдельные пакеты разработки. IBM делала пакеты для свободных сред, таких как Linux (и OtherOS). Инструменты Sony, напротив, явно нацелены на GameOS в качестве единственной среды выполнения.
Чтобы облегчить сложность разработки Cell, IBM также разработала ещё один (но недолговечный) компилятор XLCL, который компилирует код OpenCL (вариант C/C++ для параллельных вычислений) для PPU и SPU. Он распространялся только через канал IBM Alphawork, означая, что компилятор оставался экспериментальным.
Поскольку Sony поддерживала только PS3, их SDK включал такой же набор инструментов GCC, но дополненный тоннами библиотек для графических задач, обработки аудио и операций ввода-вывода. В случае с графикой для RSX, Sony предоставляла библиотеки GCM для создания низкоуровневых команд и psGL, построенная поверх GCM для обеспечения OpenGL ES API.
Для написания шейдеров Nvidia предоставляла Cg. Это компилятор шейдеров, который парсирует язык, похожий на GLSL (язык шейдеров, созданный для OpenGL).
7.1.1. Разработка без коммерческой лицензии
С появлением хоумбрю-приложений (работающих на GameOS, а не на OtherOS) были созданы новые наборы SDK с открытым исходным кодом. Сделано это для обхода зависимости от библиотек Sony, защищенных авторским правом, чтобы, следовательно, предотвратить потенциальные судебные разбирательства.
7.1.2. Аутсорсинг разработки
Стоит отметить, что за это время возросла популярность своеобразной бизнес-модели: игровые движки.
Вкратце, игровые движки берут на себя всё фундаментальные задачи, такие как физика, освещение и прочее. Разработчикам остается только добавить свой собственный контент (скрипты, текстуры, модели, звуки и прочий контент).
7.2. Носители информации
Теперь, когда мы закончили говорить о разработке игр, настало время рассмотреть их распространение. Итак, здесь описываются официальные механизмы распространения игр для PS3.
7.2.1. Диски Blu-ray
Новое поколение = новый носитель.
Для своей новой консоли Sony выбрала диск формата Blu-ray.
В то время как ранние игры для PS3 работают с диска, более поздние игры копировали часть своих ресурсов на жесткий диск для увеличения скорости чтения. Тем не менее, диск с игрой необходим всегда для запуска игры.
7.2.2. Онлайн-магазин
Одновременно с выпуском консоли Sony запустила собственный канал распространения под названием PlayStation Store, позволяющий игровым студиям продавать свои игры в цифровом виде, а пользователям приобретать их, не вставая с дивана. Для работы игр не требуется никакого физического носителя (кроме места на жестком диске), но владение цифровым продуктом было привязано к онлайн-аккаунту. Это вызвало беспокойство пользователей в марте 2021 года, когда Sony объявила [76] (а затем отменила [77] ) закрытие этого магазина.
В своем цифровом магазине Sony также воспользовалась возможностью продавать оцифрованные версии игр для PS1, PS2 и PSP под названием PlayStation Classics. Они загружаются и устанавливаются аналогично играм для PS3, но для их работы используются эмуляторы, прилагаемые в цифровой версии. Фактически, игры PS2 используют один и тот же неускоренный программный эмулятор независимо от того, содержат ли модели PS3 чипсет PS2 [78] или нет! Полагаю, это заключительная глава для аппаратной эмуляции в PS3.
7.3. Сетевой сервис
Сервис позволил пользователям создать личный аккаунт, назначить аватар, и затем использовать эту новую цифровую личность для многопользовательских игр, переписки и других социальных взаимодействий. Пользователи также могут получать трофеи, если они совершают определенное событие или действие в игре. Затем они отображаются в онлайн-профиле (как некая медаль почета), чтобы, наверное, запугать соперников и завоевать уважение друзей.
Скриншоты меню PlayStation Network в XMB
И последнее, но не менее важное: как и в случае с обновляемой ОС, игры тоже обновляются. Таким образом, при запуске игры XMB может предложить загрузить обновления игры (в виде “пакетов”), которые исправляют ошибки и/или добавляют новый контент. Обновления устанавливаются на жесткий диск и работают аналогично слоистой файловой системе.
8. Борьба с пиратством и хоумбрю-приложениями
Все, что вы только что прочитали, должно быть каким-то образом защищено от «несанкционированного» доступа. Если хотите ознакомиться с тем, как компания Sony выполнила эту работу, то вам дальше будет интересно.
8.1. Обзор фундамента безопасности
Многие части консоли уже обеспечивают функции безопасности, которые не требуют ручной реализации в ПО:
Cell содержит скрытый ROM, в котором хранятся незашифрованные процедуры загрузки, не опасаясь, что посторонние смогут увидеть или изменить их.
Режимы привилегий Cell и изолированный режим SPE предотвращают доступ программ к неавторизованным ресурсам.
Южный мост плавно шифрует содержимое жесткого диска с помощью AES.
Кроме того, Sony внедрила в ПО следующие средства защиты:
Сложная цепочка доверия, которая начинается с незашифрованного загрузочного ROM в Cell и заканчивается графическим интерфейсом пользователя (XMB), который загружает только зашифрованные Sony двоичные файлы под ядро и гипервизор.
Цепочка доверия реализует несколько алгоритмов шифрования, включая асимметричные (RSA и ECDSA) и симметричные (AES) в сочетании с HMAC и SHA-1 (для подтверждения целостности данных).
Некоторые ключи шифрования изготавливаются в процессе производства. Это значит, что если хакеры найдут и выложат эти ключи, они не будут работать на других консолях. За это приходится расплачиваться тем, что Sony не может исправлять ПО, зашифрованное этими ключами, после того как консоль покинет завод.
Эти специальные ключи используются для bootldr и metldr (ранние стадии загрузки).
Игры должны обращаться к ядру для доступа к железу, которое, в свою очередь, обращается к гипервизору. Эти «абстракции», в теории, не позволят игровым эксплойтам превышать привилегии в системе.
Диаграмма шифрованного SELF-файла
8.2. Поражение
Вы уже видели, на что способна эта консоль, но ожидали ли вы, что хакеры будут довольствоваться ограниченными возможностями OtherOS? Думаю, Sony тоже не ожидала. Компания изо всех сил старалась защитить некоторые области, но оставляла другие области полузакрытыми, которыми позже и воспользовались хакеры.
8.2.1. Обход гипервизора
В 2010 году, после трех лет затишья на хакерской сцене, в сообществе произошло нечто интересное.
Эксплойт требует двух материалов: установки Linux под управлением OtherOS (для выполнения произвольного, но ограниченного кода) и наличия внешнего глитчера, подключенного к шине XDR (для общения с ОЗУ).
Коротко, гипервизор использует хэш-таблицу, хранящуюся в ОЗУ, для каталогизации адресов памяти вместе с их уровнями привилегий. Поэтому пользовательские программы не могут получить доступ к защищенным областям памяти.
Атака работает путем нарушения целостности такой таблицы, чтобы иметь возможность писать поверх неё, а затем использовать эту привилегию для изменения записей, чтобы предоставить текущей программе доступ к каждой области в памяти.
Затем эксплойт Хотца запрашивает дополнительные блоки, поэтому гипервизор расширяет свою таблицу новыми записями. Этот процесс продолжается до тех пор, пока запись в хэш-таблице не перекрывает место в памяти блока, который должен был быть деаллоцирован. Поскольку в хэш-таблице сохранилась старая запись, дающая пользователю доступ к этому адресу, гипервизор в итоге предоставляет к изменению записи в хэш-таблице! Таким образом, эксплойт изменяет запись, чтобы расширить доступ ко всему пространству памяти.
Диаграмма, описывающая атаку на гипервизор
8.2.2. PS Jailbreak
Позже, в 2010 году, группа под названием PS Jailbreak анонсировала (и позже выпустила) уникальное решение для запуска хоумбрю-приложений непосредственно из встроенной оболочки консоли (XMB, из под GameOS) без вмешательства в железо консоли. И все это не понравилось Sony, которая вскоре пойдёт юридическим путём, чтобы заблокировать продажи продукта.
За кулисами эта флешка выполняет огромное количество работы, которую можно разделить на две части [87] :
USB-эксплойт: после включения консоли флешка обманывает систему, заставляя её думать, что она подключена к USB-хабу со шестью портами. Потом она выполняет сложную последовательность USB-команд, пока не достигнет переполнения кучи и эскалации доступа к ядру PS3 (уровень 2). Затем она приступает к выполнению полезной нагрузки (payload).
Payload: это ещё один сложный пакет, который исправляет оригинальную оболочку, чтобы включить скрытые функции, доступные только на отладочных устройствах (кнопка «Install PKG»). Пакет отключает проверку подписи (для загрузки произвольного модуля или пакета) и перенаправляет команды Blu-ray на жесткий диск (для загрузки игр). Тот факт, что эта программа может изменить так много на уровне ядра, заставляет задуматься, а в чём же гипервизор хорош?
В дополнение к этому M4j0r позже сказал:
Интересно, что он даже не использует код Sony, эта часть lv2 была написана Logitech, и разработчики этого эксплойта могли иметь доступ к исходному коду (благодаря взлому 2008 года) [88]
8.2.3. Достойны упоминания
Прежде чем я наконец-то расскажу о главном достижении хоумбрю-сцены PS3, позвольте мне описать пару методов, которые были разработаны примерно в то же самое время:
Даунгрейдер: поскольку Sony продолжала устранять уязвимости с помощью новых обновлений ПО, у пользователей не осталось другого выбора, кроме как понизить версию прошивки с возможностью запуска эксплойта. Таким образом, появились компании, подобные E3, которые поставляли специализированное оборудование, позволяющее переписать систему консоли «трудным способом». То есть, путем прямой прошивки чипов NAND или NOR. По понятным причинам этот метод требует большего мастерства и терпения по сравнению с USB-методом.
8.2.3. Падение шифрования
Как и в саге с PSP, первоначальные эксплойты требовали больших усилий и легко исправлялись Sony, что привело к невыгодной игре в кошки-мышки. Однако, как и в случае с PSP, это был вопрос времени, когда какое-нибудь открытие нарушит фундамент безопасности этой системы: её цепочку доверия.
Бинарные файлы, загружаемые на этапе загрузки, подписываются ключом ECDSA. Так как это асимметричная система шифрования, то любой, кто владеет закрытым ключом (Sony, а теперь и другие), может зашифровать и подписать двоичные файлы. В глазах metldr эти файлы будут выглядеть «подлинными».
А поскольку metldr является третьим этапом загрузки перед загрузкой lv1 (гипервизора), это означает, что хакеры смогут создавать собственные гипервизор, ядро и всё, что находится под ними. Кроме того, любая PlayStation 3 на рынке будет думать, что пользовательские двоичные файлы являются подлинными. В общем, это был эксплойт в стиле батареи Пандоры, но он был полностью программный.
Открытие этого ключа, которое должно было быть вычислительно невыполнимым, стало возможным благодаря «оплошности» в реализации алгоритма ECDSA компанией Sony.
8.3. Эра кастомных прошивок
Взлом metldr означал, что теперь все могли создавать «официальные» системы для PS3, что привело к появлению «разновидностей» GameOS, которые различные сообщества выпускали с различными настройками. Эти системы представляли собой модификации официальных файлов прошивки Sony (которые она распространяла в виде обновлений) и пересобирались с использованием утечки ключей, поэтому их можно было установить куда угодно.
Результат получил название «кастомная прошивка» (Custom Firmware, CFW) и стал де-факто методом взлома этой консоли, пока Sony не приняла жесткие меры по его устранению.
Моя установленная CFW с открытым “меню VSH”. Этот вариант прошивки (под названием «Rebug») также позволяет мне превратить консоль в отладочную станцию и возиться со своими хоумбрю-приложениями.
Тем временем в сети появилось множество CFW с разными названиями (например, «Rebug», «Ferrox» и прочее), и они содержали следующие особенности [94] :
Отключение проверки подписи для любого установленного или устанавливаемого модуля.
Разрешение чтения и записи (классический peek and poke) по любому адресу памяти, используя либо гипервизор (уровень 1), либо ядро (уровень 2).
Включение возможности монтирования образа диска, как если бы был вставлен диск Blu-ray.
Восстановление OtherOS и даже его усовершенствование за счет снятия ограничений, накладываемых гипервизором. Результат был назван OtherOS++.
Запись базы данных в EEPROM чипа SysCon, позволяющая установить любую версию системы по выбору. Это также известно как QA Toggling.
Изменение стиля XMB (например, удаление предупреждения об эпилепсии, разрешение делать скриншоты в игре и так далее).
Есть и мой любимый вариант: привнести отладочные функции из тест-кита, позволяя любой розничной консоли стать отладочной станцией. Это может быть сделано установкой либо прошивки с возможностями отладки, либо той, которая может преобразовать розничную консоль (CEX) в отладочную модель (DEX) путем изменения специфических для консоли данных во флэш-памяти.
8.3.1. Sony наносит ответный удар
Аналогично событиям, произошедшим после появления CFW для PSP, Sony ответила двумя обновлениями системы безопасности:
Со стороны ПО Sony выпустила два системных обновления, которые улучшили систему безопасности:
По сей день эти модели консоли не могут запустить CFW, поэтому их прозвали непрошиваемыми. Однако они могут работать с «гибридной прошивкой», о которой мы поговорим позже.
8.3.2. Возвращение хоумбрю-приложений
Основная полезная нагрузка PS3Xploit полностью повторяет работу аппаратного даунгрейдера (исправление файлов CoreOS), но с помощью программного обеспечения. Нагрузка работает следующим образом:
Отправной точкой является интернет-браузер XMB, построенный на базе WebKit. PS3Xploit использует JavaScript для получения возможности выполнения произвольного кода в пользовательском пространстве системы (и вне среды JavaScript). Чтобы запустить эту программу, пользователю достаточно открыть родной веб-браузер XMB, ввести URL-адрес, указывающий на хост PS3Xploit, и позволить ему сделать свою работу.
Так получилось, что ядро предоставляет системные вызовы, которые могут быть использованы для перезаписи файлов системы во флэш-памяти. Кроме того, оболочка (XMB) и её плагины хранят в памяти процедуры, которые используют эти вызовы.
PS3Xploit не может вызвать эти системные вызовы напрямую из-за защиты «no-execute» гипервизора, не позволяющей эксплойту загружать новый код в пользовательскую среду. Однако он может найти способ перезаписать флэш-память, «позаимствовав» процедуры у оболочки.
Теперь консоль способна устанавливать неофициальные обновления программного обеспечения, и пользователь может этим воспользоваться для установки кастомной прошивки. Правда, пока что он не может понизить версию системы, но после установки актуального CFW пользователь может установить дополнительные утилиты для понижения версии системы, и если захочет, и установить более улучшенную CFW.
Как видите, этот «подарок с небес» вернул кастомные прошивки в центр внимания и сделал устаревшими аппаратные даунгрейдеры и ODE. С другой стороны, для тех моделей, которые не могли установить CFW любым способом (непрошиваемые), позже командой был предложен другой пакет эксплойтов, PS3Hen.
PS3Hen фокусировался на включении подмножества функций CFW в прошивку (включая возможность запуска хоумбрю-приложений). Этот пакет устанавливает точку входа в XMB, и пользователь должен запускать её каждый раз при включении консоли, чтобы снова активировать хоумбрю-приложения.
8.3.3. Частичный ответ от Sony
К счастью, Sony предприняла лишь небольшие шаги, чтобы заблокировать PS3Xploit (возможно, потому, что такой поворот событий произошел спустя годы после того, как преемник консоли, PlayStation 4, появился в магазинах). Они выпустили несколько системных обновлений, которые не исправили эту цепочку эксплойтов, но удалили процедуру, используемую в WebKit для начальной загрузки цепочки.
И на этом заканчивается сага о борьбе с пиратством. По моему скромному мнению, не думаю, что Sony заинтересована в том, чтобы прикладывать больше усилий для защиты этой консоли. Поэтому я бы не ожидал новых игр в кошки-мышки в этой области.
9. На этом всё, ребята!
Ура, вы добрались до конца!
Буду откровенен, я изначально планировал написать статью за 2 месяца, однако это растянулось на целое лето (и вы знаете почему). В любом случае, надеюсь, что это помогло вам расширить свои знания об этой системе, и позволило вам понять причины технологического прогресса в ту эпоху. Таким образом, теперь вы можете мыслить шире популярных слухов, постоянно повторяемых СМИ.
Если вам интересно, для этой статьи я использовал три модели PS3:
Непрошиваемая CECH-3001 прямиком из моего подросткового возраста (почему-то на коробке написано, что это модель CECH-25XX!). Недавно достал её из чердака, чтобы попробовать PS3Hen.
CECH-2100, которую я купил после выхода PS3Xploit. Наконец-то я смог установить на неё хоумбрю-приложения.
Модель CECHA (выпущенная только в Японии), купленная мною в августе 2021 для сбора материалов для этой статьи (в основном фотографии и информация об обратной совместимости с PS2). Это было довольно дорого, но, к счастью, пожертвования читателей помогли мне компенсировать расходы.
Хоть я много раз повторял, что Cell был революционной технологией, вы, возможно, заметили, что я ни разу не упомянул, насколько ненадежными оказались ранние модели. Это был первый раз, когда я услышал о неисправности консоли, просто некоторое время поиграв в неё.
Действительно, эти штуки ели электричество, как динозавры, и нагревались, как духовка (пластиковая духовка). К счастью, у меня была модель «Slim» (её следовало назвать “рабочей”)… Стремительная эпоха была, не так ли?
В любом случае, касаемо того, что у меня на повестке дня: я возьму небольшой отпуск, прежде чем приступить к следующей статье, чтобы поработать над другими направлениями по улучшению сайта и заняться личными делами.