не хватает BCF00000-BCF00FFF для того чтобы раскриптовать IPL, вытащить из него тот самый main.bin. расковырял соответственно код ipl которые все это декриптует и распаковывает, знаю алгоритм, знаю все ключи, кроме того единственного что остался в BCF00000 от предзагрузчика
только дампер не должен пользоваться системными вызовами для доступа к файлам, потому-что в этот момент системы в памяти еще нет. в iplsdk для этого есть собственная либа с поддержкой fat32. то есть взять iplsdk, собрать кастомный ipl, проверить что он запускается. потом поправить его, вставив куда-нибудь вызов:
Если у тебя нет IPL для сравнения, то я тебе щас их закину и напишу что и где находится.
Файл pspbtcnf.bin тоже находится в запакованном виде - это обычный текстовик. Его нужно распаковать, добавить строчки и назад запаковать.
Ну а ты сможешь реализовать это с iplsdk. И где его взять, я что-то у себя не нашёл?
так а я то что с этим всем буду делать? у меня же нет ломаной psp чтобы я мог на ней ipl собственного изготовления стартануть. старый main.bin мне ничем не поможет, тот кто его смог вытащить стопудово сдампил для этого BCF00000 но вот в открытый доступ не выложил
файлы которые стартуют из списка pspbtcnf.bin наверняка не являются нормальными приложениями, ты не можешь туда вписать какую-нибудь обычную тулзу, потому-что она попытается вызвать системные функции, а система еще не загружена. то есть туда надо вписывать такой файл который умеет напрямую с регистрами работать для записи во флэш. проще сам ipl поправить, там уже есть такие функции
это код из оригинального ipl, перед тем как он начинает читать из BFC00000, вполне возможно что этот код изменяет карту памяти и без него этот адрес не будет досупен
rustot добавил 13-02-2010 в 04:34
офигеть, только сейчас заметил, там уже есть этот код!
int main(void)
{
Kprintf("ENTER:%s\n",__title__);
...
ms_save_file(BIOS_FILE_NAME,(void *)0xbfc00000,0x1000);
}
то есть достаточно это дело запустить так как в ридмишке написано и на стике появится /psp_bios.bin, который мне и нужен
Последний раз редактировалось rustot; 13.02.2010 в 04:34.
Причина: добавил, подумав
rustot, не понимаю, как ты что-то там ковыряешь. не имея прошитой PSP
Нужно ведь ещё проверять.
А этот архив-же мой и есть ))). Это я дампил все IPL-ы от своей PSP и выложил для тренировок. Ты отсюда наверное его стянул: https://www.pspx.ru/forum/showthread....352#post822352 И что, там есть iplsdk ))). Ща гляну.
А дампил main.bin от 2.00 тоже я. Зачем выкладывать в открытый доступ. У нас есть скрытый раздел для хакеров, так что мы там кое-какие секреты обсуждаем и выкладываем.
А ты-бы лучше зарегистрировался по нормальному, может тебе тоже туда дали бы доступ, т.к. я смотрю ты нехило в программировании и дизасме разбираешься. Хакер наверное каой-нибудь )))
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 13.02.2010 в 04:42.
так я надеялся что ты сдампишь. мне прошитой psp не хватает только для этого, все остальное я сделаю без нее. уже готовый бинарник есть, нужно только запустить
зарегиться я не могу нормально там че то глючит, считает что мне 13 лет независимо от введеной даты
Ну ты мне тогда дай инструкции к действию, а то я уже подзабыл, что-где у меня лежит и о чём разговор ))). И лучше бы ты код, который нужно вставить сразу добавил бы в iplsdk, а я его сам скомпилю. А то мне нужно всё поднять и вникнуть поглубже.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 05.04.2010 в 05:39.
да не нужно ничего вставлять и компилить. в iplsdk есть каталог ML_BIOS_DUMPER и там лежит именно та прога которую нужно запустить, и она создаст файл /psp_boot.bin на флешке, который мне и нужен
судя по тому что написано в ридмишке, нужно установить кастомный ipl_ms.bin, так же как его ставят когда ломают, каким то там батником. потом pspboot.bin скопировать в ms0:/ipl/ipl.bin, загрузиться с нажатым LTRG (это я не понял что такое L+R что ли?
rustot добавил 13-02-2010 в 05:08
или как вариант прописать этот pspboot.bin в тот самый pspbtcnf.bin
rustot, я понял, о чём ты мне всё рассказывал. Всё это про изготовление комплекта Пандоры. Чтобы записать загрузчик в скрытую область на карту памяти. Щас я глянул эти sdk про LTRG, про pspboot.bin.
Это немного из другой оперы ))). Всё это я когда-то, года 2 назад, знал и юзал наизусть )
Но мысль вообще в правильном направлении.
А Пандора и TimeMachine сейчас делаются более современными методами.
Чтобы тебе более вникнуть в суть, то нужно посмотреть эту тему: https://www.pspx.ru/forum/showthread.php?t=77904
Там в "Способе №2. Для PSP с официальной прошивкой", залей себе файлы Пандоры на карту памяти. Они извлекаются из программы "PSPGrader".
Просто, для изучения. Это тебе наверняка поможет и натолкнёт на путь истинный. Ты посмотришь и сравнишь IPL на карте памяти с теми, которые я дампил из Nanda.
Фактически это прошивка, которая запускается с карточки памяти.
В папке ms0:/TM/DC8/ увидишь IPL-ы для Фатки и Слимки (ipl_01g.bin и ipl_02g.bin) - это почти такие-же, которые записываются в нанд кастомпрошивки 5.00 М33.
И ещё там есть просто ipl.bin - это какой-то пред-IPL.
Когда батарея запандорена, то идёт обращение к мультизагрузчику, как бы MBR в скрытой области карты памяти, он называется TM-IPL или раньше был Booster-IPL и есть ещё куча разновидностей. Он как раз не использует системные файлы, а работает на процессорном ассемблерном коде. Он реагирует на нажатую кнопку LTRG и при её обнаружении считывает путь из текстовика в файле ms0:/TM/config.txt, в котором записан исполняемый путь: L = "/TM/DC8/ipl.bin";
После запуска ipl.bin, происходит элементарная проверка на модель PSP и в зависимости от модели происходит запуск одного из кастомных IPL - ipl_01g.bin или ipl_02g.bin.
А они запускают файлы ms0:/kd/lfatfs.prx и ms0:TM/DC8/tmctrl500.prx, который запускает файл пандоры ms0:/TM/DC8/KD/resurrection.prx
Из него вытекает всё меню Пандоры с вытекающими.
Когда в меню Пандоры запускаешь пункт "Test M33", то через перезагрузку вызывается ipl_0xg.bin, в котором находится файл pspbtcnf.bin, после которого начинается официальный IPL, который запускает все кастомные файлы прошивки с карты памяти и официальную прошивку.
Вот тут и происходит загрузка прошивки. В этот момент нужно дампить память.
А ещё лучше наверное экспериментировать с TimeMachine. В ней можно держать на карте несколько прошивок. И там немного по другому всё это работает.
[*]Когда батарея запандорена, то идёт обращение к мультизагрузчику, как бы MBR в скрытой области карты памяти, он называется TM-IPL или раньше был Booster-IPL и есть ещё куча разновидностей. Он как раз не использует системные файлы, а работает на процессорном ассемблерном коде. Он реагирует на нажатую кнопку LTRG и при её обнаружении считывает путь из текстовика в файле ms0:/TM/config.txt, в котором записан исполняемый путь: L = "/TM/DC8/ipl.bin";
вот именно это и надо, поставить батарею, карту с мультизагрузчиком и подменить на ней ipl.bin на тот что лежит в iplsdk ML_BIOS_DUMPER. в той ссылке что ты дал только исходники, если нечем собирать то в той ссылке что я дал (300 меговой) он лежит уже собранный. с этим подмененным ipl мультизагрузчтик с нажатым LTRG сдампит память на карту и зависнет. ничего писать самому не надо, все уже готовое, только запустить
rustot добавил 13-02-2010 в 14:06
[QUOTE=ErikPshat;866961]Вот тут и происходит загрузка прошивки. В этот момент нужно дампить память.[/LIST]
нет, тут уже поздно, вся память перелопачена к этому моменту. надо чтобы сдампил ipl.bin запущенный из мультилоадера
Последний раз редактировалось rustot; 13.02.2010 в 14:06.
Причина: добавил, подумав
а мультилоадер именно тот, который из этого же комплекта iplsdk, 'by booster'? а то они разные вряд ли между собой совместимы по формату ipl.bin. чтобы биос дампер бустера запустить, видимо и мультилоадер бустера надо ставить
Всё разобрался. Пришлось изучать старые редми. Вроде всё восстановил в памяти. Это всё делалось старыми первыми тулзами по изготовлению Пандоры.
Я ведь по-началу всё пытался своей Пандоре DC8 скормить. Потом пытался TimeMachine, но в ответ тишина.
Потом всё-таки понял, что все эти причиндалы работали немного по другому в первых версиях Пандор.
В общем я опять вернулся на Пандору 3.80. Ведь сам-же писал и подготавливал её ))). Там мультизагрузчик другой и нужны вспомогательные файлы прошивки 1.50. В принципе от первой Пандоры, в 3.80 почти ничего не изменилось, только появился мультизагрузчик.
Короче я щас сижу на 5.00 М33 и у меня начинает что-то получаться. Получилось снять дамп BIOS. Но вот там есть ещё дампер main.bin, а он почему-то никак не реагирует.
Позже попробую с 6.20 снять. Но что-то говорилось, что там адресация сменилась?
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Последний раз редактировалось ErikPshat; 14.02.2010 в 06:29.
main.bin скорее всего не получится так халявски снять, дампер не пытается его распаковать, а пытается поймать момент когда он уже сам распаковался в памяти и наверное это сработает только с той версией прошивки, под которую он писался, а не с любой.
можешь попробовать заменить
patch_point = search_long_jump(0x040f0000,0x040f1000,0x04000000);
на
patch_point = search_long_jump(0x040ec000,0x040ed000,0x04000000);
может получится
но мне нужен только дамп биоса, main я вытащить тогда смогу сам без psp, с любой версии
rustot добавил 14-02-2010 в 06:41
ps. и наверное с заменой адресов тоже не получится. он пытается найти инструкцию J 0x400000, а там сейчас переход по регистру $R25 = 0x4000000, jr $R25
Последний раз редактировалось rustot; 14.02.2010 в 06:41.
Причина: добавил, подумав
rustot, ну это понятно, что main.bin можно итак вычислить по 1F8B )).
Но вот Биос какой-то странно маленький выходит ровно на 4096 байт.
Хотя в самом конце чётко вижу надпись: Copyright (C) 2004,2005 Sony Computer Entertainment Inc. All rights reserved
Ну я щас прошьюсь на 6.20 и скину тебе psp_bios.bin
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
это не биос на самом деле. просто так назвали это просто служебные данные какие-то, оставленные в памяти pre_ipl. они используются только для вычисления ключа. gen_random(buf, 0x1000), for(i in 0..1023) buf[i] += bufBFC00000[i]. gen_key(buf, key). вот я и не могу получить key не зная что лежало в BFC00000
rustot добавил 14-02-2010 в 06:52
ps. и я думаю они будут одинаковы и для 1.0 и для 6.20, иначе бы прошивки не подходили к разным версиям материнок, а sony вынуждена совместимость держать
Последний раз редактировалось rustot; 14.02.2010 в 06:52.
Причина: добавил, подумав
вроде все правильно, теперь пишу декриптовщик, как напишу выложу. с 6.20 стоит ковыряться только чтоб окончательно убедиться что под ней psp_bios.bin будет абсолютно тот же
замечательно, значит распаковщик будет универсальным пока в лоб не получилось, стал смотреть внимательно - в алгоритме hmac_sha224 они похоже поменяли константы. извращенцы. придется пересматривать код внимательнее, я то просто увидел константы от sha224 и дальше в этот код не смотрел, думал стандарт
аттачить мне не дает, так что исходник только, сможешь main.bin вытащить сам
Универсально пока не получилось, вот это для 6.20 подходит. там их почему-то 2 разных ipl с 2 разными main.bin - part2_nandipl_01g.bin и part2_nandipl_02g.ipl. может это для разных версий материнок разные грузятся
rustot добавил 15-02-2010 в 03:05
вот так выглядит стартовый код main.bin. в 0xBFC00000 лежат 256 байт положенные туда из ipl, после decrypt() они выглядят так как выше заквочено, а дальше идет kirk, это только на psp можно сделать (если никто еще не сломал его, ведь откуда-то знают что он AES делает, но как именно не говорят)