PDA

Просмотр полной версии : NAND Dump - структура


ErikPshat
16.09.2009, 09:15
http://s54.radikal.ru/i145/0909/ba/844277c3f5bd.jpg

Для начала определимся, что же такое NAND-память консоли PSP?

NAND-память - это по сути чип флеш-памяти. Более подробнее об этом можно ознакомиться в Википедии (http://ru.wikipedia.org/wiki/Flash-память).
На PSP мы уже знаем, что существует 4 области памяти - это Flash0, Flash1, Flash2, Flash3.
И конечно это не 4 чипа памяти, как наверное думают некоторые.

На самом деле это один чип Samsung K5E5658HCM-D060, состоящий из двух областей, можно сказать чипов, сопряжённых в одном корпусе (один чип монтируется поверх другого, и заливается термостойким компаундом (http://ru.wikipedia.org/wiki/Компаунд)):


Первая область ROM - это как раз чип NAND 32MB flash memory. Туда записывается загрузчик IPL вначале, затем ключи IdStorage, ну и сама прошивка.
Вторая область RAM - это внутренняя оперативная кэш-память 32MB 333MHz DDR SDRAM memory (8MB reserved for kernel), куда кэшируются, необходимые в определённый момент, файлы выполняемой игры, программы или плагинов и необходимые для их функционирования и отображения файлы прошивки.

Samsung 437
K5E5658HCM-D060
BPG036P2

Manufacturer: Samsung
Part Number: K5E5658HCM-D060000
Package: FBGA(FL), 137 balls
Size: 10.5 x 13 x 1.4 mm
Desсriрtion: Samsung 1st generation MCP 3.0V/2.5V 32MB 8 bit Uniform Block NAND Flash + 32MB 32 bit 6ns CL3 DDR
SDRAM in a 137 ball FBGA(LF) package.

У чипа нет специальных ножек, для впаивания в плату. С нижней стороны он имеет выпуклые круглые 137 ножек, как у процессоров, и прижимается к таким же круглым контактам на плате. Сиреневым цветом обозначены контакты Nand-памяти, а розовым обозначены контакты DDR-памяти:

http://s46.radikal.ru/i112/0909/16/72bad42d4233.png

http://i036.radikal.ru/0909/40/7b27fb7b7491.jpg

На платах ТА-086 эта микросхема была заменена на Samsung K5E5658ACM-D060.
Вот она в самом конце платы, а модель платы видим внизу:

http://s19.radikal.ru/i192/0909/95/648f9c3a0407.jpgУ Слим и Брайт соответственно объём Оперативки и EEPROM увеличен в два раза и составляет 64/64 MB. Сама память никаких операций выполнять не может, а может только хранить информацию, а вот управление записи/считывания информации берёт на себя контроллёр памяти - это отдельная квадратная микросхема.

NAND разделён на логические разделы, где раздел Flash0 является основным системным и где храниться прошивка PSP. Остальные разделы поделены на логические области. Flash1 хранит настройки системы, куки и историю веб-браузера. Flash2 хранит данные о покупках в PSN-магазине, а Flash3 пока никак не используется.

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

IPL - загрузчик прошивки PSP
IDStorage - содержит ключи, информацию об оборудовании, регионе, модели и пр.

Причём область IPL и Flash0 являются зашифрованными. Вы привыкли, когда на кастомной прошивке подключаетесь к Flash0, то явно видите файлы PRX и RCO в явном виде, разложенные по папочкам. Но на самом деле, в прошивке файлы лежат в другом, зашифрованном виде. Это когда вы делаете подключение по USB к области Flash0, то специальный драйвер дешифрует на лету область памяти и представляет вам файлы в таком виде, как будто бы они так там и лежат. Кроме того, как вы и сами знаете, сами файлы так же являются зашифрованными. Таким образом, во время работы PSP, происходит двойной процесс расшифровки - сначала самой области Flash0, затем файлов прошивки во временную кэш-память. На этом первое короткое знакомство думаю можно закончить.

Речь у нас пойдёт о более важном. Нас сейчас более интересует структура NAND-памяти.
А изучить её нам помогут несколько полезных утилит.
Вы уже наверняка знаете, как снять Nand-Dump. Это можно сделать множеством всяких программ, например Пандорой или NandTool, который входит в состав "Pandora ELF & PBP Menu (https://www.pspx.ru/forum/showthread.php?t=81243)", так же в комплект программы входит IPL-Dumper и множество подобных сервисных утилит.

Что такое Nand-Dump?
Это точная копия байт-в-байт микросхемы памяти NAND, содержащей всю память PSP. Это загрузочный IPL, ключи IDStorage, Flash1 cо всеми настройками PSP, Flash2 с данными о покупках в PSN, Flash3. В общем всё всё всё.
Впоследствии, с этого Nand-Dump-а можно легко восстановить систему в точности такой, какой она была на момент снятия дампа.

Если кому интересно, то тут я выложил для изучения полный комплект дампов прошивок 3.71-6.00.
Внимание! Дампы сняты с моей PSP-1004 Phat, на другие PSP заливать нельзя!
Только для изучения!

Дампов IPL официальных прошивок.
Дампов IPL кастомных прошивок.
Полных дампов NAND официальных прошивок.
Полных дампов NAND кастомных прошивок.

Скачать (http://narod.ru/disk/13354518000/371-600%20IPL%20%26%20NandDump.7z.html) (осторожно 330 МБ)

NAND-DUMP

IPL
Initial Program Loader

Предисловие и технические данные:


Что такое сектор (страница)?
Один сектор = 512 байт.
Если рассматривать структуру диска Флеш, например через Hex-редактор, то станет понятно, что все данные записываются на диск согласно правилу:
Сектор - это минимальная область пространства, которое не может делиться пополам или ещё как-то и может содержать только одного вида данные, т.е. данные части одного файла. Например, другой файл не может начинаться в секторе, содержащем конец предыдущего файла, даже если остаётся свободное место.
Кроме того, файловая структура PSP и не только, организована так, что минимум на каждый файл отводится 32 сектора. То есть, если даже конец файла заканчивается в первом секторе очередного блока из 32-ух секторов, то остальное свободное пространство на 31 сектор неизменно остаётся пустым и полностью принадлежит только этому файлу. Никакой другой файл не может начинаться с занятого блока.


Что такое избыточный код?
Избыточный код, это код в 16 байт, который добавляется к концу каждого сектора. Этот код содержит технические данные о каждом секторе - позиционирование сектора в нанде и ECC(код коррекции ошибок). Поэтому, при рассмотрении Нанд-дампа следует учитывать это. То есть, после каждых 512 байт всегда следует 16 байт избыточного кода. Эту структуру мы видим в сыром (RAW) Nand-дампе. Но если подключить любую область Nand(flash0/1/2/3) к компьютеру, как логический диск, то "избыточный код" выдаваться не будет и вы его не увидите.


Что такое блок?
Один блок - это 32 сектора * 512 байт + 32 сектора * 16 байт избыточного кода = 16896 байт.


Что такое область IPL в Нанд-дампе?
Секция IPL занимает 0-47 блоки (48 блоков) = 48*(32*512) + 48*(32*16) = 811008 байта от начала Nand, как раз точную сумму всех ниже описанных пунктов.


Что представляет IPL на флеш-диске?
В чистый IPL на флеш-диске, избыточный код не включается и содержит он в чистом виде 114688 байт, что равняется 224 секторам и если прибавить столько же строк по 16 байт (224*16), то получим грязный код в Nand-Dampe = 118272 - это та самая сумма во втором пункте!!!


Ещё раз о правилах!
Ещё прослеживается закономерность, что каждая область обязательно делиться по секторам точно без остатка, то есть на 512, да ещё обязательно кратное 32.

За основу для рассмотрения я взял Нанд-Дампы официальной и кастомной прошивок версии 5.00.

Структура IPL в Нанд-Дампе официальной прошивки

При рассмотрении области IPL, на основе некоторых фактов, я логически разделил её на несколько частей. Почему я это сделал? А потому, что каждая из этих частей разделена пустым пространством, содержащим сплошной код FFFFFFFF превышающий 512 байт. А мы знаем, что каждые 512 байт должен присутствовать избыточный код в 16 байт, разделяющий сектора, содержащего техническую информацию о своём секторе. Это даёт повод судить о том, что где прекращается избыточный код, там заканчивается логическая структура данных/файла.


Первые 67584 байт NAND-памяти PSP не содержит никаких данных и забита сплошным кодом FFFFFFFF.

128 секторов по 512 байт/сектор + 128 * 16 избыточных данных = 67584 байт.

Т.к. после каждого сектора идёт 16 байт дополнительного кода, а секторов 128, то дополнительного кода получается 128 * 16.
Обычно сектора идут один за другим непрерывно, но эти 16 байт, добавляемых нанд-дампером, получается сдвигают каждый последующий сектор, поэтому я этот лишний код называю "Избыточным".

http://i014.radikal.ru/0909/cd/31a92130e423.png В 67584 байте начинается некая размеченная область, забитая нулями, размером в 135168 байт, находящаяся в середине первой пустой области.
От 67584 (0x10800 HEX) по 202752 (0х31800 HEX)

256 секторов * 512 + 256 секторов * 16 байт избыточного кода = 135168 байт.

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

http://s58.radikal.ru/i161/0909/55/0fa95b425733.png От 202752 (0х31800) по 270336 (0х42000) снова идёт пустое пространство забитое сплошными FFFFFFFF, размером опять 67584 байта, как в первой пустой области.

128 секторов по 512 байт/сектор + 128 * 16 избыточных данных = 67584 байт.

http://s60.radikal.ru/i168/0909/d5/b6e931291b00.png Область официального IPL Sony.
От 270336 (0х42000) по 388608 (0х5EE00) находиться код с данными официального IPL загрузчика прошивки Sony и содержит 118272 байта. Как раз эта область дампиться IPL-дампером, входящим в состав Pandora ELF Menu (https://www.pspx.ru/forum/showthread.php?t=81243) и сохраняется в корне карты памяти под названием enc_ipl.bin.

224 секторов * 512 байт + 224 сектора * 16 байт избыточного кода = 118272 байт.

Очень странно, что остальная область IPL не дампиться в файл с помощью IPL Dumper, хотя в NandTool указывается область блоков 0-47.

Если верить NandTool, то 48 блоков по 32 сектора в блоке, должны иметь 1536 секторов по 512 байт, что даёт 786432 байт, плюс по 16 байт избыточного кода к каждому из 1536-ти секторов.

Итого 811008 байт - полная область IPL от самого начала.
Сюда уже входят 67584 байт пустоты вначале, 135168 байт размеченной пустой области, ещё 67584 байт пустоты и 118272 байта части IPL, которая дампиться через IPL Dumper. Это всего лишь 388608 байт из 811008 байт от всей области IPL.
Куда же делись оставшиеся 422400 байт? Об этом мы узнаем далее...

http://i019.radikal.ru/0909/68/272c2462fecc.png Далее, от 388608 (0х5ЕЕ00) по 422400 (0х67200) идёт следующая область IPL, содержащего 33792 байта.

64 сектора * 512 байт + 64 сектора * 16 байт = 33792 байта.

http://s47.radikal.ru/i116/0909/66/d1b0b16d3623.png Затем в 422400 (0х67200) по 439296 (0х6B400) находиться ещё часть кода 16896 байт. Заметьте, что 32 сектора - это минимальная единица записи данных. Даже если данные помещаются в 1 сектор, то по любому занимается 32 сектора.

32 сектора по 512 байт + 32 сектора * 16 байт = 16896 байт.

http://s55.radikal.ru/i149/0909/5b/574ae2e8a705.png Ну и с 439296 (0х6B400) по 811008 (0хC6000) идёт сплошная пустая область, заполненная FFFFFFFF.

Занимает она 371712 байт = 704 сектора * 512 байт + 704 сектора * 16 байт.

http://i077.radikal.ru/0909/0b/2b4c27facd3b.png


Итак, подытожим.
Сложим все 7 пунктов: 67584 + 135168 + 67584 + 118272 + 33792 + 16896 + 371712 = 811008.

Как видим и как ни странно, у нас всё сошлось до байта! Причём все числа делятся на 32 и на 512 без остатка.

Посмотрим по секторам: 128 + 256 + 128 + 224 + 64 + 32 + 704 = 1536 секторов чистого кода, не считая избыточного.
Вот такая вот математика.

IDStorage

Пока этот раздел не особо интересует, поэтому так, несколько набросков...

В 1651-ом секторе непонятный кусок данных на 6 секторов.

В 1683-ем секторе ещё непонятный кусок данных на 7 секторов.

Далее в 1721 секторе 881232 байта от начала начинается первый ключ IDStorage 0x0004, содержащий первые данные и далее.

FLASH-0,1,2,3

1115120 байт от начала начинается область FLASH-0,1,2,3.

На PSP-100х Phat

Flash 0 size: 24'576 KB х 1024 = 25'165'824 байт
Flash 1 size: 4'096 KB х 1024 = 4'194'304 байт
Flash 2 size: 1'024 KB х 1024 = 1'048'576 байт
Flash 3 size: 960 KB х 1024 = 983'040 байт

Диапазон Flash 0 = 1'115'120 - 26'280'944
Диапазон Flash 1 = 26'280'944 - 30'475'248
Диапазон Flash 2 = 30'475'248 - 31'523'824
Диапазон Flash 3 = 31'523'824 - 32'506'864

На PSP Slim & Brite

Flash 0 size: 41984 KB х 1024 = 42'991'616 байт
Flash 1 size: 5120 KB х 1024 = 5'242'880 байт
Flash 2 size: 4096 KB х 1024 = 4'194'304 байт
Flash 3 size: 9344 KB х 1024 = 9'568'256 байт

Диапазон Flash 0 = 1'115'120 - 44'106'736
Диапазон Flash 1 = 44'106'736 - 49'349'616
Диапазон Flash 2 = 49'349'616 - 53'543'920
Диапазон Flash 3 = 53'543'920 - 63'112'176

Yoti
16.09.2009, 17:22
Таки написал? Молодцом!

ErikPshat
16.09.2009, 20:39
Yoti, да, я всё-таки вычислил, где находится этот IPL ))).

Теперь хоть знаю, что он из себя представляет.
А это я сюда написал, чтобы на бумажках не писать, а то они постоянно теряются.
Я уже снял все дампы IPL и Nand-Dump, начиная с 3.71 по 6.00 OFW&CFW.
Теперь сижу сравниваю, что там такого DAX менял на каждой прошивке...

Yoti
17.09.2009, 02:09
Эрик,
наша идея живее всех живых?! А я с vlf играюсь, что насчёт intrafont? На зызфаксе письмо не дошло?

ErikPshat
17.09.2009, 03:04
А я с vlf играюсь, что насчёт intrafont?
Мне же Энди больше не помог.
Можешь взглянуть на окончательный вариант с переведённым установщиком, который так и остался: http://www.pspx.ru/forum/showpost.php?p=793801&postcount=20 (см. вложение).

Может найдёшь косяк, почему при установке прошивки (с зажатым L при включении), выделение пунктов меню не совпадает. Там косяк только на первом экране, а всё остальное просто супер. Вот из-за этой мелочи не стал пускать в плавание.

Yoti
17.09.2009, 15:17
Скачать это дело сам собирался, спасибо за линк. Насчёт косяка подумаю и попробую потрясти Энди.

Dovovoy
21.09.2009, 18:27
Я уже снял все дампы IPL и Nand-Dump, начиная с 3.71 по 6.00 OFW&CFW.
Теперь сижу сравниваю, что там такого DAX менял на каждой прошивке...

как результаты? есть продвижения?

TohaMEN
21.09.2009, 20:25
Чувствую скоро прошивка новая будет 6.00 (pspx) от Эрика. Я ее сразу поставлю если такая выйдет:good:

ErikPshat
21.09.2009, 21:16
как результаты? есть продвижения?
О результатах пока говорить рановато.

Но продвижения есть значительные!

А именно:

Я полностью изучил всю структуру IPL до каждого байтика.
Я прекрасно вижу, что на кастомпрошивке - IPL официальной прошивки лежит вообще нетронутый и в девственном закриптованном виде. То есть, для создания кастомпрошивки, нет необходимости его вообще декриптовать и как-то править.
Я отчётливо вижу, к какой хитрости прибег Dark Alex ))). Я вообще поражаюсь, как он, ни капли не прикасаясь к загрузчику прошивки IPL и файлам оффпрошивки, создал кастомпрошивку и сделал так, чтобы она загружалась.
Я вижу эту область Pre-IPL, которую встроил Dark Alex и которая занимает всего 16 кб, и которая лежит в незапакованном виде (декриптованном).
Я вижу в этой области Pre-IPL - декриптованный файл pspbtсnf.bin, который занимает почти всю эту область и содержит пути загрузки файлов прошивки в VSH (XMB). Последним в списке загрузки записывается единственный кастомный файл systemctrl.prx, который является главным исполняемым файлом кастомпрошивки. Именно от него идут все команды функционирования прошивки.

В общем я прекрасно всё вижу )))

Для создания кастомпрошивки 6.00 требуются два условия:

Нужно подправить файл pspbtсnf.bin в IPL всоответствии с прошивкой 6.00, который в ней лежит в папке "KD" и в которой очерёдность загрузки файлов прошивки изменилась однозначно, причём удалились несколько файлов и добавилось новых.
Нужно править файл systemctrl.prx для управления новой структурой файлов новой прошивки.

Dr.House
21.09.2009, 21:20
нет слов. одни слюни)

You-Are-Pwned
21.09.2009, 21:40
О результатах пока говорить рановато.

Но продвижения есть значительные!

А именно:

Я полностью изучил всю структуру IPL до каждого байтика.
Я прекрасно вижу, что на кастомпрошивке - IPL официальной прошивки лежит вообще нетронутый и в девственном закриптованном виде. То есть, для создания кастомпрошивки, нет необходимости его вообще декриптовать и как-то править.
Я отчётливо вижу, к какой хитрости прибег Dark Alex ))). Я вообще поражаюсь, как он, ни капли не прикасаясь к загрузчику прошивки IPL и файлам оффпрошивки, создал кастомпрошивку и сделал так, чтобы она загружалась.
Я вижу эту область Pre-IPL, которую встроил Dark Alex и которая занимает всего 16 кб, и которая лежит в незапакованном виде (декриптованном).
Я вижу в этой области Pre-IPL - декриптованный файл pspbtсnf.bin, который занимает почти всю эту область и содержит пути загрузки файлов прошивки в VSH (XMB). Последним в списке загрузки записывается единственный кастомный файл systemctrl.prx, который является главным исполняемым файлом кастомпрошивки. Именно от него идут все команды функционирования прошивки.

В общем я прекрасно всё вижу )))

Для создания кастомпрошивки 6.00 требуются два условия:

Нужно подправить файл pspbtсnf.bin в IPL всоответствии с прошивкой 6.00, который в ней лежит в папке "KD" и в которой очерёдность загрузки файлов прошивки изменилась однозначно, причём удалились несколько файлов и добавилось новых.
Нужно править файл systemctrl.prx для управления новой структурой файлов новой прошивки.


Да, да... А я, вот, про vshctrl давно знал. Очень давно!
Как-то попробовал вставить vshctrl из 5.00 M33-4 в 5.50 GEN-A.
PSP запустилась (я думал, что вообще будет черный экран). Полез в System Settings, PSP зависла.
Вторая попытка: запустил PSP, перешел в GAME - MS. Запустил хомку, все сделалось также, как в оф. прошивке - Data is corrupted. На ISO он тоже отвечал - Data is corrupted.

Эрик, не забывай - vshctrl.prx это часть systemctrl.prx.
Дарк поделил systemctrl.prx на systemctrl.prx и vshctrl.prx.
Естессно в оф. проше vshctrl.prx нет, но он тоже важен.
Я скоро напишу свою статью, это всем поможет больше вникнуть в создание CFW. Она будет огроменная, обещаю. Будет куча скринов и еще больше разъяснений.

KingSD
21.09.2009, 21:52
You-Are-Pwned, с нитерпением буду ждать инструкции)))

Dovovoy
22.09.2009, 13:14
.............
.............

спасибо за новости о продвижениях. К сожалению помочь сам не могу, хоть и очень хочу.

Кстати, ErikPshat, вопрос возник. А нельзя написать маленький дискриптер по расшифровке файлов, предназначенных для новых прошивок. типа дескриптера, чтобы переделать eboot с новых игр для запуска на старых прошивках? Или пока что не ясно, откуда какие ключи берутся?

я не гонюсь за запуском игр, сам почти и не играю ,а из новинок интересна только Little Big Planet, для развлечения вполне хватает возможности почитать книги и посмотреть видео. Просто интересно - можно ли вытащить нужные ключи для дискриптера?

You-Are-Pwned
22.09.2009, 21:20
Despertar del Cementerio v8 5.55 MOD - http://rapidshare.com/files/282562961/DC9.rar.

Часть 1.

Существует очень много разных модов “восьмого Деспертара”. Вот этот мод позволяет установить официальную прошивку 5.55 на ваш PSP без UMD-дисков, на которых содержится данная прошивка. UMD-диски на которых она есть: Evangelion, G.I.JOE Rise of Cobra, Persona, Soul Calibur: Broken Destiny, MotorStorm: Arctic Edge, Tales of VS и т.д.

После установки, во flash0 прошивки можно “залезть” с помощью сборки от ErikPshat. Вы спросите, почему я выбрал именно 5.55, почему не 6.00. А потому, что в прошивке 6.00 увеличилась защита – ключи, методы криптовки и т.д. А новые игры идут именно с 5.55.

Я уже собрал этот мод “восьмого Деспертара”, поэтому вам остается только скопировать все файлы на вашу Memory Stick. В этой сборке содержится: официальная прошивка 5.00 (из нее будут распаковываться некоторые модули, необходимые для установки 5.55 через Пандору), официальная прошивка 5.55 и сам “Деспертар”.

Итак, приступим к установке:
1. Переносим все данные с Memory Stick на компьютер.
2. Форматируем Memory Stick с целью чистки предыдущего IPL.
3. Записываем Time Machine IPL на Memory Stick, как написано в этой инструкции: http://pspfaqs.ru/static/pandora_ms.html.
4. Копируем все файлы из архива в корень Memory Stick. Корень – это тоже самое, что E:\, F:\, O:\ и т.д. при подключении к компьютеру.
5. Открываем свойства папки TM.
6. Снимаем, если есть, галочку с пункта Архивный, и устанавливаем её, если нет, на пункт Только чтение. Свойства применяем для этой папки и для всех вложенных тоже.
7. Готово.

Теперь можно запускать меню Пандоры. Делайте все действия осторожно, не нажимая лишних кнопок! Вытаскиваем батарейку, затем вставляем её с зажатой кнопкой [ВВЕРХ]. Нажимаем “Install 5.55 OFW”. После завершения установки, нажимаем [КРУГ]. Вытаскиваем текущую батарейку и вставляем другую, “незапандоренную”. Если такой у вас не окажется, то воткните зарядное устройство. Включаем PSP с зажатыми кнопками [КВАДРАТ] + [ТРЕУГОЛЬНИК] + [SELECT] + [START].

Теперь вы можете убедиться, что у PSP стоит прошивка 5.55.

http://i068.radikal.ru/0909/65/3bf2690df181.jpg
http://s12.radikal.ru/i185/0909/8e/041800cc03b5.jpg
http://s50.radikal.ru/i130/0909/5b/d5d94a84f7cc.jpg

Дальше можно поэкспериментировать с прошивкой. Скачайте сборку ELF Menu от ErikPshat. Поместите её на вашу PSP вместе с файлами для загрузки 5.55. В конфиге, я поставил запуск ELF Menu на клавишу [ВЛЕВО].

Запускаем. Заходим в категорию USB и нажимаем “Force decryption modules to load”. Даже если появится сообщение “Modules already loaded”, все равно надо подгрузить модули. Теперь все полностью в вашей власти. xD

http://pic.ipicture.ru/uploads/090922/ema5rS12ET.jpg
http://i082.radikal.ru/0909/6f/b6be1c40fc6c.jpg

Особенно важным является flash0, поэтому мы туда и зайдем. Подключаем USB кабель к компьютеру и нажимаем “Toggle flash0 via USB”.

http://i032.radikal.ru/0909/42/1d331f121c98.jpg

Часть 2.

Flash0, flash1, flash2 и flash3 хранятся в чипе NAND, который расположен на материнской плате PSP. Это выглядит примерно так:

http://s51.radikal.ru/i131/0909/e5/0bfe1db689fb.png
http://s49.radikal.ru/i123/0909/fa/36930252702b.png

Итак, продолжаем. На компьютере, заходим в съемный диск (это flash0). И видим 5 папок: data, dic, font, kd, vsh.

В папке data – находится какой-то сертификат, я еще не понял зачем он нужен.
В папке dic – находятся какие-то словари (?).
В папке font – находятся шрифты, отвечающие за надписи в XMB.
В папке kd – находятся главные модули прошивки.
В папке vsh – находятся вторые “по главности” модули прошивки.

Вы уже сразу захотели посмотреть в папку kd? Нет-нет, там все prx модули закриптованы специальной подписью, которые будут работать только на вашей PSP.

http://s60.radikal.ru/i168/0909/fa/79121a4fd4bb.png

А вот в папку vsh заглянуть можно. Тут тоже prx закриптованы, но не rco, bmp и txt. Так что вы можете их распаковать и изменять на любой вкус. Для проверки, переменуйте файлы в папке \vsh\resource: 01-12.bmp в 01-12.bak и 13-27.bmp в 13-27.bak. У вас должны пропасть фоны.

Теперь подключимся к flash1 нажав “Toggle flash1 via USB”. Если вы хорошо знаете PSP, то вы заметите, что в 5.55 появилась раннее неизвестная, пустая папка “marlin”. Во flash1 особый интерес представляет только папка “registry”. Там есть 2 файла: system.dreg и system.ireg. System.dreg важнее, так как в нем содержится более главная информация, чем в system.ireg. В system.dreg хранятся: пароли к Parental Control, пароли к WiFi сетям, “поведение” кнопок круг и квадрат и т.д.

Вы можете изменять эти файлы HEX’ом. Даже если удалить все файлы из flash1 – ничего страшного не произойдет. А вот во flash0, трогать закриптованные файлы, особенно prx, не рекомендуется (удалять все файлы подряд, тоже нельзя).

Файл systemctrl.prx (или systemctrl_02g.prx в PSP Slim), отвечает за запуск EBOOT'ов. С помощью него, можно заставить PSP запускать homebrew, но он тоже закриптован специальной подписью.

P.S Эрик, я вложил готовую 5.55, так как её сложно извлечь из образов UMD. Я пробовал SC: BD, MS: AE. То размер был слишком большой, то слишком маленький, поэтому я скачал 555.PBP с YouTube.

P.P.S Эрик, я заметил, что ты пишешь "damp" и "decript", когда правильно "dump" и "decrypt" (не в обиду).

ErikPshat
22.09.2009, 21:57
You-Are-Pwned, молодца! Постарался на славу.

Вынес в отдельную тему: http://www.pspx.ru/forum/showthread.php?t=83695

Инструкция конечно рабочая, но есть очень много НО!
Во-первых: прошивку EBOOT.PBP каждый должен уметь собрать самом и по этому поводу должна быть инструкция!!! Даже только из-за того, что у каждого наверняка есть образ диска или диск UMD с игрой, требующей прошивку 5.55, и которая конечно же находится в образе, а производить тупое действие по скачиванию и затрачиванию трафика того, что уже есть у тебя, глупо и вообще не соответствует уровню этого раздела "PSP хакинг и девелопмент".

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

Сам способ установки искусственно раздут и усложнён на сколько только хватает фантазии.
Добавлено куча пунктов в инструкции, без которых можно было обойтись, пойдя более простым и лёгким путём.
Скрины лучше было снять на PSP, а не фотоаппаратом :D

Вот небольшая критика ))). Так что подумай и исправляй недостатки. Если что, я тебе подскажу что и как.

За рабочую инструкцию, приложенные усилия и старания, расширенный обзор, конечно большой-большой РЕСПЕКТ!!!

DenDav
23.09.2009, 23:06
ErikPshat, а вообще реально переделать эти модули так, чтобы можно было хоть хомбрю запускать? Или это анриал? И можно ли ещё как-нибудь засунуть работающий MS Boot Speed на 5.50 GEN? Сорь, что этот вопрос не в тему, просто интересно.

ErikPshat
24.09.2009, 02:35
DenDav, в смысле. Хоумбрю итак можно запускать на кастомпроше.
А игры чтобы запускать, нужно ставить ядро 5.55 или 6.00. А чтобы это ядро заработало, нужно править IPL и systemctrl.prx и далее с вытекающими из него последствиями.

Я пока IPL подсунул в 6.00 и произвёл установку 6.00 со всеми кастомными файлами от 5.50GEN, но проша конечно не запустилась.
Думаю, нужно править systemctrl.prx.

Но это всё пока для меня сложно. Так что я на время оставил это дело и занялся более приземлёнными проектами. Времени катастрофически не хватает объять необьятное ))

Yoti
22.10.2009, 19:01
Кстати, Эрик, забыл написать - при восстановлении нандтул восстанавливает 44 блока, а не 47. Три блока на избыточную инфу отводится, чтоли?

Yoti
23.10.2009, 20:14
ErikPshat, разобрался с неправильными выделениями. Жду мессаги в личку.

egvf
21.11.2009, 00:03
Хочу высказать огромную благодарность ErikPshat за эту ОГРОМНУЮ статью ! Буду советовать эту статью всем , в качестве "Начальных сведений по файловой структуре PSP " (я сам очень далек от всего этого , но эта статья супер!!!) Спасибо!

doubledeath
26.11.2009, 12:56
мне тоже очень понравилась эта статья, впринципе все понятно, приятно и полезно почитать для "общего развития", молодец ErikPshat

Alezhek
20.12.2009, 00:18
Я отчётливо вижу, к какой хитрости прибег Dark Alex ))). Я вообще поражаюсь, как он, ни капли не прикасаясь к загрузчику прошивки IPL и файлам оффпрошивки, создал кастомпрошивку и сделал так, чтобы она загружалась.
Я вижу эту область Pre-IPL, которую встроил Dark Alex и которая занимает всего 16 кб, и которая лежит в незапакованном виде (декриптованном).
Я вижу в этой области Pre-IPL - декриптованный файл pspbtсnf.bin, который занимает почти всю эту область и содержит пути загрузки файлов прошивки в VSH (XMB). Последним в списке загрузки записывается единственный кастомный файл systemctrl.prx, который является главным исполняемым файлом кастомпрошивки. Именно от него идут все команды функционирования прошивки.

Поправлю немножко, а то путаница с терминами. Pre-IPL это 4кб код, зашитый в процессоре Сони, выполняющий его инициализацию, а также дешифровку и загрузку IPL. Поэтому увидеть его (без ухищрений) нельзя. И второе - Официальный - зашифрованный IPL, потому и оставлен как есть, что он не нужен) Взломан (точнее подписан) его первый 4кб кусочек - который передает управление непосредственно загрузчику модифицированной прошивки Дарк Алекса.

ErikPshat
20.12.2009, 04:16
Alezhek
По поводу PRE-IPL я делал поправку в статье. Это я так назвал модифицированную область и я прекрасно представляю, что такое PRE-IPL процессора. В моём описании речь идёт о другом PRE-IPL, просто потому, что он находится перед официальным IPL.

По поводу взломанного перевого кусочка IPL я не понял. По-моему, он там никак не затронут.

Alezhek
20.12.2009, 18:28
Не знаю, можно ли на этом форуме постить ссылки на сторонние ресурсы, но вот тут это подробно расписано: принцип атаки на ПреИПЛ (http://pspfaqs.ru/category/faqs-main/uglublyaemsya_v_psp_chast_6_princip_ataki_na_ipl_i_preipl.html)
Да, забыл.. речь конечно же идет о Зашифрованном ИПЛ!!! - т.е. в прошивке Сони и ДАКСа они разные - особенно первый "подписанный" блок

Yoti
20.12.2009, 18:45
Я долго смеялся, увидев ссылку. Эрик там ежедневно бывает =)

Yoti добавил 20-12-2009 в 18:45
Ипл грузится с опредлённого адреса, в кастом прошах там даксовый файлик с путями.

Coby
24.12.2009, 01:15
1. можно ли как нибудь проверить NAND на целостность? в смысле слитый с консоли файл
2. если слить свои IdStorage, потом залить чужой NAND полностью, консоль зажмурится, потом залить свои слитые IdStorage то консоль оживет?

Alezhek
25.12.2009, 01:05
Только не пойму, о каких 4 байтах ты говоришь, когда достоверно вычислено, что официальная прошивка в точности соответствует кастомной, за исключением вставленных перед IPL 16384 байт Dark_Alex-a, что представляет из себя файл с путями, по аналогии с pspbtcnf.bin


Не 4 байта, 4 кб кусочек IPL , это следует из статьи на сайте SilverSpring http://silverspring.lan.st/
Ага! вот почему эта область у ДАркАлекса больше!
Now the CPU is executing from the scratchpad RAM (the preipl payload).
The preipl payload inits the nand hardware and reads the IPL
nand-block-table (a table with the physical block numbers of the
ecnrypted IPL's location on the nand). The table is located at the
4th physical block of the nand (offset 0x10000), and is repeated for
the next 7 blocks. This is so that if a bad block occurs in any of
these blocks, the table can still be read. Though if all 8 blocks
become bad blocks, its a non-recoverable brick as the preipl can no
longer locate the IPL's location (the only solution to this problem
is to either boot from MS instead, or use a custom IPL to patch the
preipl to remap the table - both of which would still require Pandora).
т.е. там находится таблица расположения файлов, причем повторяющаяся 8 раз (для надежности)

Coby
25.12.2009, 08:56
а где еще можно NAND дампы скачать?

ErikPshat
26.12.2009, 02:32
Coby, а если ты снимешь дамп со своей PSP, то это будет считаться, что он здесь уже есть или был?

Coby
26.12.2009, 06:07
ErikPshat,
мне нужен дамп с 3.60... а у тебя насколько я знаю fat...
я снял дампы со всех прошивок начиная с 3.71,
хочу найти дамп с 3.60, залить ключи, и слить уже как свой, затем обновиться до 3.70
вобщем двух дампов не хватает

Yoti
26.12.2009, 13:28
Coby,
на 1000 ты 3.60 не поставишь, а на 2000 (не ТА088-3) не проблема.
ErikPshat,
я уже писал тебе, что у СильверСпринга много всего хорошего написано.

Coby
26.12.2009, 14:09
а на 2000 (не ТА088-3) не проблема.
а подробнее?)) проще 3.60 только наверное NAND залить, т.к. с через пандору она ставится сложновато))

Yoti
26.12.2009, 22:12
Coby, зачем забивать гвозди микроскопом?
NOTE: For restoring a 3.60-M33 on the Slim, use the 3.52 updater (352.PBP).

Coby
26.12.2009, 23:32
Recovery Flasher v1.60 README NOTE: For restoring a 3.60-M33 on the Slim, use the 3.52 updater (352.PBP)
.
я знаю про это, дак там чтобы вернуться на 3.60 нужен бэкап, снятый им же Recovery Flasher'ом

Yoti
27.12.2009, 03:21
А нафига тогда 352.PBP нужен? Файлы из него идут. Вообще, от 3.60 только psar в инете гулял - я его для тайм машины качал.

Coby
27.12.2009, 04:16
RF оттуда только апдейтеры берет, остальные кишки нужны ввиде бэкапа

ErikPshat
27.12.2009, 04:20
Coby, ты проверял? Или в редми так написано?
Тогда где найти прошивку 3.60, если она только поставлялась с завода с новыми слимками. А может есть игры с таким обновлением, хотя вряд-ли.

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

Coby
27.12.2009, 04:38
Coby, ты проверял? Или в редми так написано?

в мануалах к пандоре 3.60 написано что нужно эти апдейтеры извлечь из 352.PBP без них не прошьешься
думаю что RF они нужны для этого же

Тогда где найти прошивку 3.60, если она только поставлялась с завода с новыми слимками. А может есть игры с таким обновлением, хотя вряд-ли.
игр нету, поставить 3.60 можно насколько я понял только двумя способами
1. это залить NAND
2. это пандора, но вся сложность в том для исталляции этой пандоры нужна FAT консоль т.к. проги написаны под 1.50 kernel
и всякие приблуды типа eLoader их не запускают как ни старайся
сама прошивка сущесвует только в виде psar файла

Да и зачем тебе это надо.
после долгих мучении и попыток поставить ее, я просто забил на это))
просто я cпросил про NAND т.к. едисвенный реальный шанс))

ErikPshat
27.12.2009, 04:43
просто я cпросил про NAND т.к. едисвенный реальный шанс))Да, но ты не просил Нанд от 3.60 =)
Если в пандоре так написано, значит есть PSAR и в инете он должен валятся. Если найдёшь, то я тебе соберу прошивку, какие проблемы ))

Coby
27.12.2009, 04:50
Да, но ты не просил Нанд от 3.60 =)
Если в пандоре так написано, значит есть PSAR и в инете он должен валятся. Если найдёшь, то я тебе соберу прошивку, какие проблемы ))
ок.
я по английски не очень но насколько я понял из редми
перед тем как поставить эту 3.60M33 нужно снять NAND дамп с оф. 3.60
это может сам установщик пандоры
потом из этого NAND в HEX редакторе нужно извлечь IPL для нее
поэтому я и подумал что бэкапы где-то должны быть))

ErikPshat
27.12.2009, 07:33
Coby, тогда я не пойму. Если снять нанд-дамп с 3.60, тогда ведь можно с него-же и восстанавливаться.

Зачем нужно вытаскивать IPL?

Coby
27.12.2009, 08:31
ErikPshat, вот вобщем нашел PSAR
http://rapidshare.com/files/326407241/360.PSAR.html

вот установщики, посмотри если интересно
http://ifolder.ru/15682500

у меня еще вопрос, точнее даже просьба, мог бы ты написать нормальный человеческий уставщик пандоры под эту 3.60?
чтобы ставилось без проблем, или хотябы сделать под вид бэкапа чтобы в RF откатиться можно было?
просто там даже еще вроде проблема с установкой что при запуске пандоры на дисплее не видно ничего, просто темный экран, все вслепую надо делать)))

Coby
02.01.2010, 06:39
ErikPshat, решил проблему с 3.70... 3.60 так и осталась...
кстати, есть какой нибудь способ поставить 3.96 и 5.05? которые только на дисках))

ErikPshat
02.01.2010, 06:52
Coby, попробуй этим способом: http://www.pspx.ru/forum/showthread.php?t=83695

djUncle
02.02.2010, 19:22
Напрашивается вопрос. А можноли из платы ТA-090v2 выпаять этот чип с прошивкой 5.50 и выше и впаять чип с другой платы с кастомной прошивкой. У меня есть люди который могут перепаять этот чип, вопрос подойдет только он или нет? или вообще впаять nand чип от любой флешки 4gb например. С установленной на него прошивкой

doubledeath
03.02.2010, 18:30
Напрашивается вопрос. А можноли из платы ТA-090v2 выпаять этот чип с прошивкой 5.50 и выше и впаять чип с другой платы с кастомной прошивкой. У меня есть люди который могут перепаять этот чип, вопрос подойдет только он или нет? или вообще впаять nand чип от любой флешки 4gb например. С установленной на него прошивкой

ну нанд чип с флешки впаять по-любому не выйдет... Перепаять только чип конкретно из материнки, тоже, вроде, не получится... можно перепаять только материнку в целом... и то не известно что она будет работать с вероятностью в 100% (но, по сути должна)

djUncle
05.02.2010, 10:30
doubledeath -
не выйдет из-за недостатка оборудования ? (оборудование для пайки и впайки чипов есть)
или не выёдет из-за несовместимости каких внутренних кодов ?

А что именно надо перепаивать в самой матери??

вообще есть где нибудь схема материнской платы psp?

egvf
15.05.2010, 22:27
вообще есть где нибудь схема материнской платы psp?
Тоже заинтересован))

doubledeath
16.05.2010, 14:32
djUncle, да в принципе при перепайке мат. платы полностью она должна функционировать, на счет схем - искать людей занимающихся перепайкой плат(профессионалами так сказать), и обсуждать это с ними, у них то наверняка есть, а найти в интернете не получится, не думаю что такие вещи кто-то будет выкладывать на общее обозрение.

Cyberdrive
09.04.2016, 16:15
Тут один добрый человек подогнал мне официальный ipl.bin для 3.60. Прогнав его через unspare.exe из установщика 3.60 от FreePlay и добавив нужные файлы (в основном, из 360.PSAR), можно будет поставить официальную 3.60 на прошиваемые PSP-2000. Чем, собственно, я и планирую заняться.
Поскольку тема собственно 3.60 M33 http://www.pspx.ru/forum/showthread.php?t=52437 давно закрыта, а для новой нужен красивый туториал в первом сообщении, пишу пока тут.

Edit: Приложенный ipl.bin НЕ НУЖНО прогонять через unspare.exe, он уже очищен от spare байт (16 байт "про запас" через каждые 512 байт кода).
Кладём его таким, какой он есть (221184 байт), в ms0:/flash0 вместе с остальными файлами прошивки 3.60; ELF установщика в ms0:/elf вместе с тремя *_352.prx, запускаем PSP с пандоры (я использовал UPMSInstaller v4), а из-под неё уже и сам установщик.
Если после прошивки PSP не стартует - сбрасываем настройки удержанием комбинации (треугольник+квадрат+SELECT+START) при включении.

Yoti
19.11.2021, 17:47
Добавил в шапку программу remspare, которая чистит NAND дампы от spare данных.
"Грязный" дамп Fat (32 MB): 528 * 65536 = 34 603 008 байт (33 МБ)
"Чистый" дамп Fat (32 MB): 512 * 65536 = 33 554 432 байт (32 МБ)
"Грязный" дамп Slim (64 MB): 528 * 131072 = 69 206 016 байт (66 МБ)
"Чистый" дамп Slim (64 MB): 512 * 131072 = 67 108 864 байт (64 МБ)