Вход

Просмотр полной версии : Спецификация прошивки PSP2UPDAT.PUP


ErikPshat
28.05.2012, 08:29
Спецификация прошивки PSP2UPDAT.PUP


Стартовая часть - описание файла

0x00[8] - Аббревиатура установщика SCEUF\00\00\01
0x08 - Версия контейнера
0x10[u32] - Версия прошивки
0x14[u32] - Версия билда (Build)
0x18[u32] - Количество файлов PKG
0x20[u32] - Размер заголовка
0x28[u32] - Размер данных, без заголовка

[U]Неизвестная секция - никакой полезной нагрузки не несёт

0x30 - Неизвестно (0х00000002)
0x34[u32] - Неизвестно (0х00000001)
0x3C[u32] - Неизвестно (0х00000002)
0x44[u32] - Неизвестно (0х0000000С)
0x50[u32] - Неизвестно (0х00000200)

[U]Файловая структура

0x80 - Номер секции (ID): 0100
0х88[u32] - Позиция version.txt
0x90[u32] - Размер version.txt

0xA0[u16] - Номер секции (ID): 0101
0xA8[u32] - Позиция license.xml
0xB0[u32] - Размер license.xml

0xC0[u16] - Номер секции (ID): 0200
0xC8[u32] - Позиция binary0.self (cli installer)
0xD0[u32] - Размер binary0.self

0xE0[u16] - Номер секции (ID): 0204
0xE8[u32] - Позиция binary1.self (gui installer)
0xF0[u32] - Размер binary1.self

0x100[u16] - Номер секции (ID): 0302
0x108[u32] - Позиция package_file_0.pkg
0x110[u32] - Размер package_file_0.pkg

0x120[u16] - Номер секции (ID): 0303
0x128[u32] - Позиция package_file_1.pkg
0x130[u32] - Размер package_file_1.pkg

0x140[u16] - Номер секции (ID): 0304
0x148[u32] - Позиция package_file_2.pkg
0x150[u32] - Размер package_file_2.pkg

0x160[u16] - Номер секции (ID): 0305
0x168[u32] - Позиция package_file_3.pkg
0x170[u32] - Размер package_file_3.pkg

0x180[u16] - Номер секции (ID): 0306
0x188[u32] - Позиция package_file_4.pkg
0x190[u32] - Размер package_file_4.pkg

0x1A0[u16] - Номер секции (ID): 0307
0x1A8[u32] - Позиция package_file_5.pkg
0x1B0[u32] - Размер package_file_5.pkg

0x1C0[u16] - Номер секции (ID): 0308
0x1C8[u32] - Позиция package_file_6.pkg
0x1D0[u32] - Размер package_file_6.pkg

0x1E0[u16] - Номер секции (ID): 0309
0x1E8[u32] - Позиция package_file_7.pkg
0x1F0[u32] - Размер package_file_7.pkg

0x200[u16] - Номер секции (ID): 030A
0x208[u32] - Позиция package_file_8.pkg
0x210[u32] - Размер package_file_8.pkg

0x220[u16] - Номер секции (ID): 030B
0x228[u32] - Позиция package_file_9.pkg
0x230[u32] - Размер package_file_9.pkg

0x240[u16] - Номер секции (ID): 030C
0x248[u32] - Позиция package_file_10.pkg
0x250[u32] - Размер package_file_10.pkg

0x260[u16] - Номер секции (ID): 030D
0x268[u32] - Позиция package_file_11.pkg
0x270[u32] - Размер package_file_11.pkg

0x280[u16] - Номер секции (ID): 030E
0x288[u32] - Позиция package_file_12.pkg
0x290[u32] - Размер package_file_12.pkg

0x2A0[u16] - Номер секции (ID): 030F
0x2A8[u32] - Позиция package_file_13.pkg
0x2B0[u32] - Размер package_file_13.pkg

0x2C0[u16] - Номер секции (ID): 0400
0x2C8[u32] - Позиция SCEWM
0x2D0[u32] - Размер SCEWM

0x2E0[u16] - Номер секции (ID): 0401
0x2E8[u32] - Позиция SCEAS
0x2F0[u32] - Размер SCEAS

[U]Хэши файлов (возможно содержит зашифрованные названия файлов)

0x300[u8] - ID Хэша: 00
0x308[32] - Хэш (0x20=256 бит) version.txt

0x340[u8] - ID Хэша: 01
0x348[32] - Хэш (0x20=256 бит) license.xml

0x380[u8] - ID Хэша: 02
0x388[32] - Хэш (0x20=256 бит) binary0.self

0x3С0[u8] - ID Хэша: 03
0x3С8[32] - Хэш (0x20=256 бит) binary1.self

0x400[u8] - ID Хэша: 04
0x408[32] - Хэш (0x20=256 бит) package_file_0.pkg

0x440[u8] - ID Хэша: 05
0x448[32] - Хэш (0x20=256 бит) package_file_1.pkg

0x480[u8] - ID Хэша: 06
0x488[32] - Хэш (0x20=256 бит) package_file_2.pkg

0x4С0[u8] - ID Хэша: 07
0x4С8[32] - Хэш (0x20=256 бит) package_file_3.pkg

0x500[u8] - ID Хэша: 08
0x508[32] - Хэш (0x20=256 бит) package_file_4.pkg

0x540[u8] - ID Хэша: 09
0x548[32] - Хэш (0x20=256 бит) package_file_5.pkg

0x580[u8] - ID Хэша: 0A
0x588[32] - Хэш (0x20=256 бит) package_file_6.pkg

0x5C0[u8] - ID Хэша: 0B
0x5C8[32] - Хэш (0x20=256 бит) package_file_7.pkg

0x600[u8] - ID Хэша: 0C
0x608[32] - Хэш (0x20=256 бит) package_file_8.pkg

0x640[u8] - ID Хэша: 0D
0x648[32] - Хэш (0x20=256 бит) package_file_9.pkg

0x680[u8] - ID Хэша: 0E
0x688[32] - Хэш (0x20=256 бит) package_file_10.pkg

0x6C0[u8] - ID Хэша: 0F
0x6C8[32] - Хэш (0x20=256 бит) package_file_11.pkg

0x700[u8] - ID Хэша: 10
0x708[32] - Хэш (0x20=256 бит) package_file_12.pkg

0x740[u8] - ID Хэша: 11
0x748[32] - Хэш (0x20=256 бит) package_file_13.pkg

0x780[u8] - ID Хэша: 12
0x788[32] - Хэш (0x20=256 бит) SCEWM

0x7C0[u8] - ID Хэша: 13
0x7C8[32] - Хэш (0x20=256 бит) SCEAS

0x800[u8] - ID отсутствует
0x800[32] - Хэш (0x20=256 бит) ???

ErikPshat
28.05.2012, 10:54
Короче, всю ночь ковырял тут этот апдейтер от 1.67.
Вычислил все смещения, вроде ни одного байтика не пропустил.
Так что можно все файлы вытаскивать вручную, а лучше автоматом.

Естесственно, если в смещении "0x18[u32] - Количество файлов PKG" изменится количество секций PKG, то нужно будет делать прибавку по смещениям.
То есть, нужно будет считать по относительным смещениям.
Файловая структура начинается строго со смещения 0х80. Поскольку в заголовке нет никаких указателей на данное начало, поэтому следует, что оно закреплено жёстко по спецификации. Отсюда и нужно делать все остальные прибавки относительно позиции 0х18, где указывается количество секций.

В ообщем, хочу попросить программистов, Yoti и frosty, накатать нормальный GUI под виндус.
Это наподобии PBP Unpacker (http://www.pspx.ru/forum/showthread.php?t=83706) или UMDGen (http://www.pspx.ru/forum/showthread.php?t=39575)

http://www.pspx.ru/forum/attachment.php?attachmentid=3731

То есть, чтобы все внутренности были видны в виде списка.
А так же, чтобы отображались все данные прошивки:

0x00[5] - Аббревиатура установщика SCEUF
0x08[u32] - Версия контейнера
0x10[u32] - Версия прошивки
0x14[u32] - Версия билда (Build)
0x18[u32] - Количество файлов PKG
0x20[u32] - Размер заголовка
0x28[u32] - Размер данных, без заголовка


Например "Firmware xTractor 2.01" не всё показывает и не совсем верно.

frostegater
29.05.2012, 08:16
Мне графические интерфейсы чужды. Могу накатать консольную прогу.

ErikPshat
29.05.2012, 08:28
frostegater, ну так не интересно. Я тоже могу написать батник и перевести его в экзешник )) получится та же консольная прога.

А что там GUI накатать. Берётся стандартный шаблон, мышкой расставляешь кнопочки по местам и растягиваешь как надо, вешаешь на них действия.
Делаешь вывод списка присутствующих файлов. И извлечение по готовым смещениям.

frostegater
29.05.2012, 08:33
ErikPshat, я ленив) ну ладно, накатаю гуйню между делом. Просто сейчас сильно занят, ты знаешь чем, да ещё завтра 2 зачёта (из-за того что нифига не учил по биологии и катал с решебника на англицком весь год), готовиться нужно.

Yoti
29.05.2012, 11:49
мышкой расставляешь кнопочки по местам и растягиваешь как надо, вешаешь на них действия
Знал бы ты, как я это ненавижу...

frostegater
29.05.2012, 13:50
На VLF кодить и то приятнее чем их растягивать)

ErikPshat
29.05.2012, 13:54
frostegater, ну может тогда сделаешь для PSP экстрактор прошивки Виты на VLF? )))

Назовём "VitaExtractor for PSP".

Yoti
29.05.2012, 14:12
для PSP экстрактор прошивки Виты на VLF
Давно я такой дикости не видел)

ErikPshat
29.05.2012, 14:19
Давно я такой дикости не видел)Ненуачо, кидаешь файл прошивки Виты в корень стика на PSP, запускаешь прогу и она по :cross: всё вытаскивает, а по :square: сразу декриптует :xDD:

Зато и PSP будет при делах и Vita не обделена.

StepS
29.05.2012, 15:21
катал с решебника на англицком весь год

прям вылитый я :D

DeAmouSE
29.05.2012, 16:56
Ну раз люди пишут тогда я писать не буду

frostegater
30.05.2012, 00:54
StepS, ага, вот тока меня запалили xD

amol1
03.11.2017, 17:19
ну че там где прога???

amol1 добавил 03.11.2017 в 17:19
А, если распаковать прошивку, а потом изменить версияон.тхт с 3.60 на 3.65 и запаковать обратно, То пс вита примет прошивку и задаунгредится??? Если теоретически сможет то может запаковщик сделаете)))

ErikPshat
03.11.2017, 17:41
amol1, зачем тебе прога? Вон в шапке я всю спецификацию расписал по байтикам.

Задаунгрейдится? Хехе, тут хакеры всего мира чешут репу как сделать откат на взломанную прошивку, а оказывается тут всё так просто - amol1, придумал крутой способ :D

amol1
20.11.2017, 20:46
не ну я не хакер, но уже более 20 способов попробовал как даунгрейд сделать, пока что безрезультатно

Dmitrywrk
30.11.2017, 14:51
Поясните, пожалуйста, firmware extractor (http://www.pspx.ru/forum/showthread.php?t=94005) это не то же самое?

Yoti
30.11.2017, 15:55
Dmitrywrk,
здесь обсуждается, как всё сделать самому, а не использование готового софта.

amol1
01.12.2017, 16:11
Dmitrywrk,
здесь обсуждается, как всё сделать самому, а не использование готового софта.

А как это сделать самому то и не говорят)))))

ErikPshat
01.12.2017, 16:36
А как это сделать самому то и не говорят)))))
Как не говорят, а первое сообщение и частично второе для чего?
Там всё по полочкам разложено как и что делать всё самому.