не хватает BCF00000-BCF00FFF для того чтобы раскриптовать IPL, вытащить из него тот самый main.bin. расковырял соответственно код ipl которые все это декриптует и распаковывает, знаю алгоритм, знаю все ключи, кроме того единственного что остался в BCF00000 от предзагрузчика
только дампер не должен пользоваться системными вызовами для доступа к файлам, потому-что в этот момент системы в памяти еще нет. в iplsdk для этого есть собственная либа с поддержкой fat32. то есть взять iplsdk, собрать кастомный ipl, проверить что он запускается. потом поправить его, вставив куда-нибудь вызов: ms_save_file('ms0:/ipl/bcf_dump.bin, (const char*)0xBCF00000, 0x1000) и запустить снова |
Если у тебя нет IPL для сравнения, то я тебе щас их закину и напишу что и где находится.
Файл pspbtcnf.bin тоже находится в запакованном виде - это обычный текстовик. Его нужно распаковать, добавить строчки и назад запаковать. Ну а ты сможешь реализовать это с iplsdk. И где его взять, я что-то у себя не нашёл? Кстати, можешь пока посмотреть, как выглядет main.bin в проше 2.00: https://www.pspx.ru/forum/attachment....9&d=1263976309 Не знаю, хватит у тебя прав скачать с секретного отдела. |
так а я то что с этим всем буду делать? у меня же нет ломаной psp чтобы я мог на ней ipl собственного изготовления стартануть. старый main.bin мне ничем не поможет, тот кто его смог вытащить стопудово сдампил для этого BCF00000 но вот в открытый доступ не выложил
файлы которые стартуют из списка pspbtcnf.bin наверняка не являются нормальными приложениями, ты не можешь туда вписать какую-нибудь обычную тулзу, потому-что она попытается вызвать системные функции, а система еще не загружена. то есть туда надо вписывать такой файл который умеет напрямую с регистрами работать для записи во флэш. проще сам ipl поправить, там уже есть такие функции iplsdk.7z я не помню где отдельно видел, но он есть например внутри этого архива - http://narod.ru/disk/13354518000/371...ndDump.7z.html (только архив огромный, 300 мег) rustot добавил 13-02-2010 в 04:29 еще желательно перед дампом вставить код REG32(0xBC100050) |= 0x7000 REG32(0xBC100078) |= 2 REG32(0xBE24000C) = 1 REG32(0xBE240000) |= 1 REG32(0xBC10007C) |= 1 это код из оригинального 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, не понимаю, как ты что-то там ковыряешь. не имея прошитой PSP :D
Нужно ведь ещё проверять. А этот архив-же мой и есть ))). Это я дампил все IPL-ы от своей PSP и выложил для тренировок. Ты отсюда наверное его стянул: https://www.pspx.ru/forum/showthread....352#post822352 И что, там есть iplsdk ))). Ща гляну. А дампил main.bin от 2.00 тоже я. Зачем выкладывать в открытый доступ. У нас есть скрытый раздел для хакеров, так что мы там кое-какие секреты обсуждаем и выкладываем. А ты-бы лучше зарегистрировался по нормальному, может тебе тоже туда дали бы доступ, т.к. я смотрю ты нехило в программировании и дизасме разбираешься. Хакер наверное каой-нибудь ))) |
так я надеялся что ты сдампишь. мне прошитой psp не хватает только для этого, все остальное я сделаю без нее. уже готовый бинарник есть, нужно только запустить
зарегиться я не могу нормально там че то глючит, считает что мне 13 лет независимо от введеной даты |
Ну ты мне тогда дай инструкции к действию, а то я уже подзабыл, что-где у меня лежит и о чём разговор ))). И лучше бы ты код, который нужно вставить сразу добавил бы в iplsdk, а я его сам скомпилю. А то мне нужно всё поднять и вникнуть поглубже.
|
Декриптовка IPL
да не нужно ничего вставлять и компилить. в 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 добавил 13-02-2010 в 05:16 вот мультилоадер с инсталяшкой http://dl.qj.net/download/psp-ms-multiloader-ipl.html. вот после его установки и надо будет подсунуть ipl.bin из iplsdk/ML_BIOS_DUMPER |
rustot, я понял, о чём ты мне всё рассказывал. Всё это про изготовление комплекта Пандоры. Чтобы записать загрузчик в скрытую область на карту памяти. Щас я глянул эти sdk про LTRG, про pspboot.bin.
Это немного из другой оперы ))). Всё это я когда-то, года 2 назад, знал и юзал наизусть ) Но мысль вообще в правильном направлении. А Пандора и TimeMachine сейчас делаются более современными методами. Чтобы тебе более вникнуть в суть, то нужно посмотреть эту тему: https://www.pspx.ru/forum/showthread.php?t=77904 Там в "Способе №2. Для PSP с официальной прошивкой", залей себе файлы Пандоры на карту памяти. Они извлекаются из программы "PSPGrader". Просто, для изучения. Это тебе наверняка поможет и натолкнёт на путь истинный. Ты посмотришь и сравнишь IPL на карте памяти с теми, которые я дампил из Nanda.
Вот здесь полный набор PSP IPL SDK v0.5. |
Цитата:
rustot добавил 13-02-2010 в 14:06 [QUOTE=ErikPshat;866961]Вот тут и происходит загрузка прошивки. В этот момент нужно дампить память.[/LIST] нет, тут уже поздно, вся память перелопачена к этому моменту. надо чтобы сдампил ipl.bin запущенный из мультилоадера |
Цитата:
|
Цитата:
|
rustot, ага.
Всё разобрался. Пришлось изучать старые редми. Вроде всё восстановил в памяти. Это всё делалось старыми первыми тулзами по изготовлению Пандоры. Я ведь по-началу всё пытался своей Пандоре DC8 скормить. Потом пытался TimeMachine, но в ответ тишина. Потом всё-таки понял, что все эти причиндалы работали немного по другому в первых версиях Пандор. В общем я опять вернулся на Пандору 3.80. Ведь сам-же писал и подготавливал её ))). Там мультизагрузчик другой и нужны вспомогательные файлы прошивки 1.50. В принципе от первой Пандоры, в 3.80 почти ничего не изменилось, только появился мультизагрузчик. Короче я щас сижу на 5.00 М33 и у меня начинает что-то получаться. Получилось снять дамп BIOS. Но вот там есть ещё дампер main.bin, а он почему-то никак не реагирует. Позже попробую с 6.20 снять. Но что-то говорилось, что там адресация сменилась? |
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, ну это понятно, что main.bin можно итак вычислить по 1F8B )).
Но вот Биос какой-то странно маленький выходит ровно на 4096 байт. Хотя в самом конце чётко вижу надпись: Copyright (C) 2004,2005 Sony Computer Entertainment Inc. All rights reserved Ну я щас прошьюсь на 6.20 и скину тебе psp_bios.bin |
это не биос на самом деле. просто так назвали :) это просто служебные данные какие-то, оставленные в памяти 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 вынуждена совместимость держать |
Вложений: 1
Вот пока глянь на Биос от 5.00. Правильно ли всё получилось?
|
вроде все правильно, теперь пишу декриптовщик, как напишу выложу. с 6.20 стоит ковыряться только чтоб окончательно убедиться что под ней psp_bios.bin будет абсолютно тот же
|
rustot, ты был прав.
Снял биос от 6.20 и сравнил с 5.00 - они абсолютно идентичны! |
замечательно, значит распаковщик будет универсальным :) пока в лоб не получилось, стал смотреть внимательно - в алгоритме hmac_sha224 они похоже поменяли константы. извращенцы. придется пересматривать код внимательнее, я то просто увидел константы от sha224 и дальше в этот код не смотрел, думал стандарт
|
аттачить мне не дает, так что исходник только, сможешь main.bin вытащить сам
Универсально пока не получилось, вот это для 6.20 подходит. там их почему-то 2 разных ipl с 2 разными main.bin - part2_nandipl_01g.bin и part2_nandipl_02g.ipl. может это для разных версий материнок разные грузятся если перла нет, то ставишь http://strawberryperl.com/ и потом cpan Math::Random::MT Код:
#!/usr/bin/perl -w вот на эти данные желательно напустить kirk, очень вероятно что на выходе будут искомые ключи Код:
0xAA, 0x76, 0x91, 0xDC, 0xB1, 0x25, 0x49, 0x0D, вот так выглядит стартовый код main.bin. в 0xBFC00000 лежат 256 байт положенные туда из ipl, после decrypt() они выглядят так как выше заквочено, а дальше идет kirk, это только на psp можно сделать (если никто еще не сломал его, ведь откуда-то знают что он AES делает, но как именно не говорят) Код:
decrypt(0, 0, 0x400D580, 0x400D5C0, 0xBFC00000, 0x100) мне уже раскриптовали. не те это ключи, это известные Цитата:
|
Текущее время: 06:22. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.