Pandora (unbricker/downgrader) для PSP-200X TA-088v3
Сервисный комплект для PSP-200X
(включая TA-088v3)
{ НИЧЕГО НЕ ПРОДАЁМ / NO SALES HERE }
После удачного взлома и последующей длительной заморозки в скрытом разделе темы: "Размышления о возможностях взлома ТА88v3"
было решено, что настало время её разморозить и отдать "в народ".
Дабы не нарушать хронологию "размышлений по взлому", инструкция выложена в шапке отдельной темой.
Первое видео от Yoti
Новое видео подтверждение работы сервисной карты JigKick на PSP-2006 TA-088v3!
Скачиваем "MSID Dumper", вставляем карту памяти в PSP и запускаем программу. Видим на экране номер "Серийный номер" и MSProID вашей карточки и записываем, хотя дамп области MSID всё равно сохранится в корне карты памяти и вы можете его потом посмотреть хекс-редактором. Это вам может пригодиться, когда вы будете искать данные MSID в дампе микросхемы.
Тонким скальпелем располовиниваем корпус карты памяти пополам. Не поностью, а только заднюю часть и чуть больше половины по краям.
Затем пинцетом достаём из корпуса плату, она не приклеена, а просто лежит в пазах.
Из платы выпаиваем микросхему памяти (nand), которая самая большая и имеет 48 ножек. Рядом находится небольшой квадратный контроллёр памяти, его не трогаем.
Нужно учитывать, что с виду карты одинаковые, но внутри могут быть разные нанды, например Hynix или Samsung. Поэтому под вашу микросхему уже потом ищется программатор. Смотрим список поддерживаемых микросхем: http://www.soft-center.ru/reader/NAND_List.php.
Hynix, насколько я знаю, практически все имеют одинаковый стандарт выводов по даташиту среди TSOP-48, поэтому если буквы или цифры немного отличаются от списка поддерживаемых моделей, то это вряд ли имеет значение.
Микросхема вставляется в панельку программатора очень просто. Панелька имеет конструкцию прищепки, нажимаем сверху, контакты отходят, ставится микросхема и отпускаем, контакты прижимаются к ножкам микросхемы.
Далее, программатор подключается к компьютеру, с заранее установленной программой и драйверами, поставляемыми с программатором. В программе указывается диапазон страниц, которые нужно сдампить и дампится часть памяти.
Сразу дампить 2 Гб всей памяти очень долго, да и не нужно. Сразу скажу, что нужная нам служебная область, где прописан MSID карты находится либо в самом начале, либо в самом конце микросхемы, обычно в 1-ом банке и не далее 3-4 блоков. Рекомендую сдампить сразу 4 блока - это 256 страниц или 0x100 в шестнадцатеричном виде, что и нужно указывать в диапазоне.
Открываем файл дампа в хекс-редакторе. Вводим в поиск, что нужно искать, а именно кусок хекс-кода MSID: 4D535053, что в буквенном выражении означает первые четыре аббревиатуры MSPS(NY0/DK0/XX0), то есть, это часть 16-значного ключа MSID, которая у всех карт памяти MS PRO DUO одинаковая.
Скриншот MSID
Это логическая область с MSID, снятая программой MSID Dumper, сохраняющаяся в корне карты памяти в файл. По структуре она не имеет ничего общего с настоящей областью MSID, которая находится в физическом чипе памяти.
Требуется только для определения номера MSID для поиска в сыром RAW-дампе ципа карты памяти.
Не путать с оригинальным RAW-дампом(снятым программатором)!
Так выглядет оригинальная сервисная область MSID, сдампленная программатором.
Обратите внимание, что она выглядет совсем иначе, нежели на первом рисунке, снятом программой для PSP - "MSID Dumper".
В стартовом секторе содержится серийный номер и MSID.
Далее идут 3 пустых сектора, полностью заполненных FFFFFFFF.
Затем идёт сектор, где указывается фрмат и размер карты памяти.
он как-бы вроде на usb флэхах стоит.. или я ошибаюсь?
Да, но алгоритм вычисления ECC полностью аналогичен нашему (проверено)!
Сергей из soft-center.ru говорит, что если "изменить ECC на один байт (в предалах кооректирующей способности кода), то контроллер возможно пересчитает его на верный", кто первый проверит? gregorio куда то пропал.
Последний раз редактировалось Yoti; 23.11.2011 в 15:54.
Другие консоли: XBOX 360, PlayStation®3 500Gb 3.55
Регистрация: 30.01.2007
Адрес: Москва
Возраст: 33
Сообщений: 626
Вы сказали Спасибо: 208
Поблагодарили 162 раз(а) в 119 сообщениях
Сила репутации: 1
Репутация: 164 
(весьма и весьма положительная личность)
Yokel, карта как карта работает, мсид правильный выдаёт, но как сервисная не работает(ошибку выдаёт)
gregorio добавил 24.11.2011 в 19:47
почти полностью уверен что с известным всем значением msid она всё-равно будет работать, и прошивать консоль. но для моих целей вариант не подходит.
Последний раз редактировалось Yoti; 24.11.2011 в 20:31.
Причина: добавил, подумав
Я думаю, что смена ECC ни к чему не приведёт. Это равнозначно, что смена MSID, как и смена ECC.
И в том и в другом случае ECC будет неадекватна.
Поэтому контроллёр занесёт такой блок в bad-block.
Я считаю, что ECC должен подсчитать сам контроллёр или научиться подсчитывать его самостоятельно.
А чтобы контроллёр подсчитывал ECC, нужно логически через него записывать этот блок/сектор. Тогда контроллёр сам подсчитает контролку всем переданным через него секторам.
Это можно сделать, только если ему разрешить запись в защищённую сервисную область.
Но, как мы знаем, эта область защищена от перезаписи.
Чтобы разрешить запись, нужно замкнуть ножку протектора на землю.
Последний раз редактировалось ErikPshat; 25.11.2011 в 01:47.
Кто в Си шарит? Вот исходники Рида-Соломона http://www.schifra.com/downloads/schifra.zip надо их курить! По екзамплу получается для 249 байт данных рассчитать 6 байт ECC, по котором можно потом опять данные восстановить!
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
Последний раз редактировалось frostegater; 25.11.2011 в 16:41.
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели. http://www.elnec.com/sw/an_elnec_nand_flash.pdf http://www.elnec.com/sw/samsung_ecc_...m_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
Простите, что вмешиваюсь.
Вот еще занятная штука, хотя может уже видели. http://www.elnec.com/sw/an_elnec_nand_flash.pdf http://www.elnec.com/sw/samsung_ecc_...m_for_512b.pdf
В последнем документе расписывается структура 16-байтного ECC для 512-байт блоков.
1,2,3 байты - номер блока
4, 5 - зарезервировано
6 - метка бэд-блока
7,8,9 - ECC code for Main area data, алгоритм вычисления тоже описан
10, 11 - ECC code for LSN data (ECC для номера блока) - заметьте, вычисляется отдельно и независимо от основных данных. Здесь уже предлагалось записать на карточку блок с нужными данными и подсмотреть его ECC, не прокатило - но что если здесь так же, то есть надо заменять не весь ECC а часть отвечающую за именно данные в блоке?
12-16 - зарезервировано.
с другой стороны, это только пример, и то от самсунга. Еще там написано что это для 64м-1гб нандов, для 2гб алгоритм может быть другим.
это не наш формат!
Yokel добавил 25.11.2011 в 18:16
Сообщение от Frostegater
Yokel, так... там каличный оутпут получается... Вылетает тот-жэ файл с 6-тибайтным смещением, походу и есть ващ ЕСС. Щас попробую сделать почеловечески, если нет, то научу патологоанатомии)
Ммм... карочи нет тайма жевать... Вот енкодер, как я сказал ужё, каличный (атач).
Как его кушать разобраться несложно. Прикол в другом. В оутпутном файле выдаётся тот же инпут, но со смещением в 6-байт: с 0x9F по 0xFE - сместитель (сместитель = ваш ЕСС). Тот файл, что я кинул для теста в инпут, мне первым подруку попался, заменяйте на свои... удачной паталогоанатомии... надеюсь - это то что вы хотели. Если то, то скажите я сделаю нормальный енкодер... а так, нет времени.
Ты просто откомпилил что было. в примере он обрабатывает 255 байт данных а нам надо 518, и ECC нам надо не 6 байт, а 10!
Последний раз редактировалось Yokel; 25.11.2011 в 18:16.
Причина: добавил, подумав
1 Гб = 1073741824 байт.
Значит 2097152 секторов.
Получается 524288 страницы.
А это всего лишь 8192 блоков.
Значит в двух банках 16384 блоков или 0х4000.