Создание патча 2,03 для LittleBigPlanet для кастом прошивок
Здраствуйте. Ко мне часто обращаются люди с просьбой выложить новый патч для игры LittleBigPlanet. У меня есть UMD c игрой и у меня сам патч есть. С последним патчем 2,03 в режим создания уровней в игру были внесены существенные изменения и исправления (их перечень можно посмотреть тут). После первой загрузки с новым патчем вносятся изменения в файлы сохранения игры, после чего загрузить эти сохранения без патча на флешке уже нельзя. При использовании этого патча работать в редакторе игры стало значительно удобнее. Плюс этот патч нужен для захода на Луну Сообщества для скачивания новых уровней (на кастом прошивке это можно сделать с помощью плагина PSNabler, как писали некоторые люди, у меня это сделать не получилось - плагин не может обойти проверку на версию прошивки при логине в psn на кастом проишивке). Вообщем по многочисленным просьбам я стал разбираться почему новый патч не хочет работать с игрой на флешке.
После скачивания патча в папке ms0:/psp/game/UCES01264 появляются следующие файлы:
dlc0003.arc
patch.arc
PBOOT.PBP
(сорри, ErikPshat, я ошибся файл PARAM.PBP создается при закачке DLC).
Сам патч не вносит никаких изменений в саму игру (что логично, т.к. игру на UMD изменить невозможно). Логично предположить, что при запуске игра просто проверяет папку psp/game/UCES01264 и если находит там файлы патча, то использует их при загрузке. На прошивке 6,10 и 6,20 если удалить файлы патча из этой директории, то в контекстном меню игры в XMB про проверке версии пишется значение "--", если файлы есть в директории, то пишется "2.03". Но на кастом прошивке во первых нет возможности скачать сам патч, т.к. в XMB в контекстном меню игры нет пункта "Обновление" - он появился только в версии прошивки выше 6,0, но, и что намного важнее, даже если скопировать патч на флешку - игра его не видит или не хочет использовать. Из-за этого преимущества нового патча нельзя использовать на кастом прошивке, а так же сохранения игры, полученные при игре с патчем на официальной прошивке, нельзя загрузить на кастом прошивке (игра говорит о поврежденных данных и, если выбрать пункт продолжить, то просто стирает сохранения и начинает игру с нуля). Путем экспериментом было установлено, что на официальных прошивках 6,0 и 6,10, на которых UMD диск запускается, игра патча не видит, хотя в XMB пишет версию игры 2.03. Это кстати теперь можно проверить не дожидаясь полной загрузки игры, а просто посмотрев на экран выбора языков (в версии Multi12). На не пропатченной игре задний фон этого экрана - это синие клетки, на игре с патчем 2,03 клетки красные. И вторая проверка игры на применение патча - дальнейшая загрузка сохранения, если игра не была пропатченна на прошивке 6,20, тогда появится сообщение, что файлы игры будут изменены и дальнейшее их использовании будет возможно только если на флешке будет присутствовать патч для игры.
После всех этих экспериментов я вместе с ErikPshat пришли к выводу, что игра просто проверяет версию прошивки и эта проверка скрыта в самих файлах патча. Так что же представляет из себя патч?
Ка я уже писал после скачивания патча в папке ms0:/psp/game/UCES01264 появляются следующие файлы:
dlc0003.arc
patch.arc
PBOOT.PBP
Два первых - это скорее всего архивы, которые распаковывает и использует патч при своей работе. В любом случае - путей покопаться в них я не знаю. Поэтому по совету ErikPshat я распаковал PBOOT.PBP с помощью PBP Unpacker-ом и получил следующие файлы:
После чего решил покопатся в них hex редактором. К файлу DATA.PSAR я не понял, как подступиться, т.к. его структура в hex совершенна мне не понятна. Файл DATA.PSP имеет хедер ~PSP (т.е. файл зашифрован). Засунул этот файл в EDecrypt 1.3, но к сожалению получил такой результат:
Как я понял, тэг 0x2E5E10F0 не знаком дискриптеру, и поэтому расшифровать файл он не может. Короткая переписка с ErikPshat подтвердила мою догадку. Он сказал так же что тэг давно известен. но раньше его применения никто не встречал. К нему есть ключ, но "он 32-байтный, хотя должен быть 16-байтный. То есть, его нужно как-то переконвертировать по какой-то формуле" (цитата ErikPshat). Т.е. надо только найти способ использования ключа для расшифровки. На этом ковыряние в файле DATA.PSP было приостановлено.
Еще я посмотрел файл PARAM.SFO. Он имеет хедер ".PSF" и читабельную структуру. В ней есть значение "6.20". Я конечно обрадовался и исправил ее на "5.00". Сохранил файл и пересобрал PBOOT.PBP. Но к сожалению игра на кастоме все равно не увидела патч.
Так что после всех этих экспериментов, я думаю, что есть надежда на внесение поправок в файл DATA.PSP, что даст возможность использовать новый патч на кастом прошивках. Или может быть проверка скрыта в каком то другом файле патча или в нескольких местах.
Эту тему я создал с надеждой, что одна и даже две головы - это конечно хорошо, но коллективный разум - лучше. Надеюсь у кого-нибудь появятся хорошие мысли по этому поводу и патч все же увидит свет.
Вот ссылка на скачивание патча 2,03, если сами захотите повторить или продолжить мои эсперименты.
Извините, что получилось очень длинно, но хотел избежать множества возможных вопросов.
Жду ваших предложений.
Последний раз редактировалось Dovovoy; 17.02.2010 в 15:18.
Давольно интересная для меня тема.
Дело в том что есть прога GO!explore (gps наивгатор)
Карты России непосредственно в образе в ней нет.
Но ее можно купить в psn network
после скачивание в папке ms0:\PSP\GAME\UCES00881 появляются следующие файлы:
PARAM.PBP
Russia_3dl.edat
Russia_fbl.edat
Russia_poi.edat
Russia1_dem.edat
Russia2_dem.edat
Russia3_dem.edat Sony_PSP_Russia@0804_DRM_lic.edat
в папке ms0:\PSP\LICENSE
EP9000-UCES00881_00-PPCGOEXPLO000011.RIF
как видно похоже это дополнение работает потому же принципу что и патч к LBP
файлы .edat это что то типа архива т.к. файлы типа fbl(непосредственно карты, poi(POI) и тд есть непосредственно в образе
на кастом проше при запуске образа программа просто не видит или не обращает внимания на дополнение и карты не появляются.
P.S сама программа это модифицированная версия igo8 которая есть на многих девайсах. карты которые есть непосредственно в образе можно заменить на др от этой проги, но добавить другие страны не получается.
Последний раз редактировалось deerc; 20.02.2010 в 19:17.
Dovovoy добавил 24-02-2010 в 11:13 pspmannikita, ты думаешь я не проверял, что создается на флешке при установке патча? Есть специальные программы, которые отслеживают изменения файловой системы. Пробовал я это делать. Нет других изменений, кроме создания выше упомянутых файлов. В этом то и облом. Я сначала грешил на запись во флеш2, в файл, регистрирующий покупки закачки из psn. Но нет, при установке патча этот файл не изменяется. Так что спасибо за поздсказку, но это тут не поможет.
Последний раз редактировалось Dovovoy; 25.02.2010 в 11:06.
Причина: добавил, подумав
svyatoslav, у меня есть UMD. Просто кроме LBP я еще на psp читаю книжки. Если бы сони прикрутило читалку книг к официальной прошивке - проблем бы не было, а так - приходится скакать с официалки на кастом и обратно. Сначала вроде было что почитать и на официалке - я скачал все бесплатные комиксы из psn и читал их, но они кончились, а книг интересных еще море.
Но думаю с оффтопиком пора кончать. Жду умных мыслей по теме.
Последний раз редактировалось Dovovoy; 24.02.2010 в 11:59.
такккк... кстати, кажись, я находил что-то похожее на название прошивки в файле patch.arc в hex редакторе: 620 !!! заменил на 503 (у меня на 3004-5.03 gen-c, а на фате-5.50 gen....) всё равно не пошло, но я считаю, что второй рубеж защиты сломан (первым был в PARAM.SFO из pboot.pbp)
pspmannikita добавил 24-02-2010 в 18:54
я, считаю, что во всех файлах патча ПРОСТО-НАПРОСТО распиханы названия прошивки 6.20, только их не было видно,т.к. они просто закодированы!!!
Последний раз редактировалось pspmannikita; 24.02.2010 в 18:54.
Причина: добавил, подумав
Дело движется, не только мы ищем пути прикрутить патч к кастом прошивке, на зарубежных форумах тоже идут подобные обсуждения, думаю совместными силами справимся. А качественных уровней все больше и больше.
Последний раз редактировалось Dovovoy; 25.02.2010 в 11:06.
два первых остались по размеру без изменений, сравню содержмое чуть позже, а файл PBOOT.PBP немного "похудел". Надо глянуть, что там поменяли.
Плюс при загрузке игра еще раз сказала, что файлы профиля игры будут изменены и необходим патч для работы в дальнейшем.
Думаю теперь есть смысл ковырять защиту этого патча, так как предыдущий потерял свою актуальность. Может авторы все же сменили тэг зашифровки...
Dovovoy добавил 02-03-2010 в 18:43
Сравнение в hex показало массу изменений в файлах patch.arc и PBOOT.PBP. Поковыряюсь пока в PBOOT.PBP.
Dovovoy добавил 02-03-2010 в 19:14
расковырял PBOOT.PBP, но содержащийся внутри DATA.PSP зашифрован тем же тэгом - 0x2E5E10F0. Ладно, вроде ключ к нему есть. Буду пробовать расшифровать, заодно проверю, не изменилось ли что то в других файлах внутри PBOOT.PBP.
Последний раз редактировалось Dovovoy; 02.03.2010 в 19:16.
Причина: добавил, подумав
Dovovoy, чтобы декриптовать PBOOT.PBP понадобится ключ для тега 0x2E5E10F0.
После декриптовки потом уже можно будет искать защиту, так как она скорее всего там есть, потому что этот ключ в прошивке давно существует и конечно этот файл может декриптоваться самой прошивкой. Ведь почему многие новые игры не работают на старых прошивках? Просто потому, что ключа расшифровки старые прошивки не имеют. А в данном случае он имеется, я его видел ещё на 5.00.
В спойлере на скрине он как раз второй. Следом за тегом сразу идёт ключ, но он 32-байтный.
Там увидишь, структура понятная:
Все теги я выделил голубым цветом.
Ключи идут следом за тегами.
Каждый следующий Тег с Ключём отделён от предыдущего 4-мя нулевыми байтами.
Многие из этих тегов с ключами ты увидишь в исходниках PSARDumper-а и поймёшь, как они записываются.
Основная масса ключей 16-байтные (128-битные) и их не надо преобразовывать, а прямо в таком виде и брать.
А есть вообще 144-байтные и но я вообще не понимаю, как их там ксорят с какими-то сидами, но в PSARDumper-е есть некоторые из них уже в готовом перевариваемом виде.
Однако мне встречались ключи 32-байтные, у которых брались, как обычно, только первые 16 байт и вставлялись в PSARDumper, и они работают. Вполне возможно, что и здесь нужно так-же поступить, подобрать только скрамблер-код, а не каким-то образом его преобразовывать.
Эту информацию мы держали в секрете. Но думаю, что нет смысла её утаивать, тем более, что многие, кто занимается прошивками, об этом конечно-же знают.
Поэтому, так-же добавляю во вложение эти ключевые файлы с отмеченными HBK для примера, может дело пойдёт более быстрее вообще в общем плане и люди подключатся.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 04.03.2010 в 01:52.
ErikPshat, огромное спасибо, теперь намного понятнее как новые ключи засовывать внутрь программы. Буду рыть байты носом. Ну и есть конечно надежда на помощь mc707
Я правильно понимаю, что нужно эти файлы кинуть в ms0:/psp/game/UCES01264 ?
И игра автоматом по идее должна найти патч и установить его?
понимаешь все правильно. Насчет установки: игра ничего не устанавливает, просто производит какие то изменения в файлах профиля игры в папке c сейвами. После этого без патча эти новые сейвы уже не загрузить. Проверить прицепился ли патч легко - на первом экране с выбором языков фон должен быть не синяя миллиметровка, а красная. Ну и на следующих экранах должна появится надпись про проведение изменений в сохраненном профиле игры.
Dovovoy, ага, он вставил первые 16-байт ключа из 32-ух, который я выкладывал. И добавил скрамблер-код для игр - 5D.
Но я тоже не понял юмора, т.к. так-же выдаёт ошибку.
Только ты зря, как DATA.PSP подсовываешь, потому что для DATA.PSP прошивки у него другой расклад идёт, а тут нужно переименовать, как EBOOT.BIN или *.prx.
Конечно я проверял все скрамблер-коды, начиная от 40 и кончая 7F, но ничего не подошло, поэтому, как я говорил, тут нужно каким-то образом ксорить, т.е. должен быть к этому 32-байтному коду Seed.
(Ключ, в посту выше как раз виден)
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 10.03.2010 в 12:54.
ErikPshat, вообщем пока что зашли в тупик... Варианты дальнейших действий есть? Я просто надеялся, что ключик подойдет. Или может тут должна быть задействована какая то часть ключа? Может просто попробовать применить не первые 16 байт, а 16 байт со сдвигом?
И что означает "SHA-1 is incorrect"?
Последний раз редактировалось Dovovoy; 10.03.2010 в 13:18.