SlimSpoof 3.0
Первые две версии данной программы прошли незаметно. На этот раз, напишу обо всем подробно.
Как многим известно, бывает, что после прошивки, игры отказываются работать. Причем иногда они всё-таки запускаются, что странно. Всё это последствия некорректных данных в прошивке. Больше всего этим грешит пресловутый JungleFlasher — последняя версия, и вовсе, в трети случаев считывает некорректные данные (когда-то писал про это).
В любом случае, я решил сделать программу для контроля качества исходных данных приводов DG-16D4S и последующего переноса данных в конечную прошивку.
Первые две версии программы были написаны на Delphi, использовали простейшие алоритмы для определения и исправления ошибок, писали риск и рекомендуемую прошивку. Теперь я решил предоставить пользователю следить за всем этим самостоятельно, для чего и пишу эту статью.
Программу делал на C++, скачать можно здесь
Возможности программы:
-распознавание всяких ошибок, неточностей и погрешностей, связанных с некорректным считыванием данных
-исправление некорректных данных, если это возможно
-распознавание исходной версии прошивки по данным (серийнику и прочему)
-корректный перенос данных в конечную прошивку, предупреждение при неверных действиях
-ручное изменение ключа и серийника (актуально для freeboot консолей)
Более подробно — в Readme (есть и на английском, но там поменьше):
SlimSpoof 3.0 [ReadMe]
Основные штуки:
Source Data — то, что написано в открытом файле. Иногда, доверять этому не стоит.
Recognised Data — то, что распознала программа. В редких случаях, может быть ошибочной
Target Data — информация о конечной прошивке, почти всегда корректнаяПроверки всякие:
Key — ну ключ привода, и так ясно. Распознается по версии, так что, если версия распозналась неверно, ключ может быть не тот
Serial — серийник, от него зависит распознавание ключа, так что, в случае, когда он неверно читается, ключ получается не тот. Если нужно внести поправки, загорится кнопочка Fix — это изменит открытый файл!
Rev — собственно, реизия прошивки. Распознанная и исходная совпадать обязаны.
Prev — версия прошивки, с которой был изготовлен привод. Отсюда пошли 0225u и 0225d прошивки — Rev 0225, а Prev 9504 (в случае с 0225u) или 0401 (в случае с 0225d). JungleFlasher при чтении пытается указывать Prev, но часто ошибается — не особо доверяйте этому значению
1FF80 — еще один кусок данных. Если он особо длинный, JungleFlasher мог считать только первую его часть и отсюда глюки с запуском игр. Проверка присутствует.
3F000 — последний важный кусок данных, обычно принимает значение BB01. В случае с Prev, отличной от Rev, он пуст. В старые прошивки вроде LT+ 1.9, некоторые блоки могли просто не влезть — проверка на это тоже присутствует, отображается внизу справа
Lbyte — последний байт зоны ключа (адрес 0x2AFFF). Когда-то Lizard в Standalone mode при спуфе его стирал — вот проверка и выявляет это. Если он нулевой и игры запускаются через раз — остается только подбирать его значение.
Type — тип загруженной прошивки, например LT Mid (версия 1.9), LT New (1.92 и 2.0), LT 3 (версия 3.0) и прочееЕсли все нормально, статус будет OK. Если для точной уверенности данных не хватает, но все нормально, будет статус OK?
Не стоит спуфить данные от одной версии прошивки в другую — ключ не сохранится (но сохранить результат можно). Предупреждение вылазит. Если так хочется — используйте Manual Edit (про него чуть позже)
Что-то не нравится? Снимайте полный дамп прошивки после разблокировки — они уж точно будут корректными.
Ручной ввод данных
Да, теперь есть фича Manual Edit — можно ввести любой ключ и любой серийник, заспуфить их в прошивку и они будут корректно вписаны! Но FCRT проверок это не отменяет, так что, эта штука почти бесполезна. Разве что для тех, кто ставит D4S привод на Phat консоли или на фрибут с отключенным FCRT (не годится для консолей с 1071 и 1125 приводами)P.S. Благодарю sekil за некоторые алгоритмы