PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Запуск PSP Homebrew на PS3 (https://www.pspx.ru/forum/showthread.php?t=103479)

BlackDaemon 25.03.2013 22:16

Запуск PSP Homebrew на PS3
 
Mercyful, прошу прощения за оффтоп, но не могли бы Вы поинтересоваться у tpu, возможно ли реализовать следующую теорию:

1. Из eboot.pbp извлекается iso-образ, в нём делается небольшая правка - подменяется ~25кбайт данных (заменяются только данные, структура образа никоим образом не затрагивается)
2. На основе такой правки в eboot.pbp заменяется конкретный участок с этими данными. (без полной пересборки eboot.pbp; без нарушения структуры оригинала)

Заранее спасибо. :)

Mercyful 26.03.2013 19:00

BlackDaemon,
Заканчивай уже с "вы" и "уважаемым" ;) Я разве что гуглом чуть лучше пользуюсь.

Что касается твоего вопроса, то очень сомневаюсь, что сие возможно. При условии, что я правильно тебя понял. Имхо, проще своего рода loader использовать, который прямо в памяти процесса будет ресурсы/данные на нужные тебе подменять. Такое уже проворачивали с локализацией Hatsune Miku Project Diva и с чем-то ещё.

BlackDaemon 26.03.2013 20:03

Mercyful, ок, заканчиваю. :D

Жаль, конечно, что это маловероятно. Задача этой теории была пробить защиту в эмуляторе PSP на PS3, т.к. к эксплойтам в PSP играх у него похоже иммунитет - попробовал сегодня на свежем релизе к Apache Overkill, получил примерно такой же лог.

Вообщем, игрался я с чем было - две Minis "A Space Shooter For 2 Bucks!" и "Hysteria Project", PSP с оф. прошивкой 6.60. В обоих сидит модуль libpsmfplayer.prx, я попросил разработчика Jpcsp сделать простенький загрузчик, который вызывает sceKernelLoadExec с путём disc0:/PSP_GAME/SYSDIR/UPDATE/EBOOT.BIN. Hex редактором заменил модуль и добавил сэмпл куба в UPDATE/EBOOT.BIN. Образ через fake_np подписал и запустил на оф. прошивке 6.60 - куб завёлся. :)

Больше всего удивило то, что модуль в декриптованом виде запустился - до этого пробовал подменять psmf/libfont - с ними подобное не проходило.

Собственно, сэмпл.

ErikPshat 26.03.2013 20:29

Цитата:

Сообщение от BlackDaemon (Сообщение 1067760)
сделать простенький загрузчик, который вызывает sceKernelLoadExec с путём disc0:/PSP_GAME/SYSDIR/UPDATE/EBOOT.BIN

Не понял, ты хочешь вызывать установку официальной прошивки?

Цитата:

Сообщение от BlackDaemon (Сообщение 1067760)
Hex редактором заменил модуль и добавил сэмпл куба в UPDATE/EBOOT.BIN

Аналогично, каким образом обновление прошивки влияет на запуск игры?
По моему эту папку UPDATE можно вообще удалить без всяких последствий.

BlackDaemon 26.03.2013 20:45

ErikPshat, загрузчик писался для целей тестирования, не более. :) Первые трудности, с которыми я столкнулся при запуске на оф. прошивке - у функций sceKernelLoadModule/sceKernelLoadExec висит ограничение на местоположение файла, т.е. c ms0:/ на оф. прошивке ими запустить ничего нельзя, пришлось придумывать как приспособиться под disc0:/ - учитывая, что в PSN релизах папка update всегда "пустует" (забита нулями). :D

Mercyful 26.03.2013 20:47

Что-то я тоже в ступор впал. многабукаф!

ErikPshat 26.03.2013 20:47

BlackDaemon, а, понел. Ты решил лоадер в несколько байт (~25кбайт) подпихнуть вместо обновления :)

BlackDaemon 26.03.2013 21:04

ErikPshat, чуть-чуть не так, посмотрите сэмпл. :) Схема запуска такая:

1. SYSDIR/EBOOT.BIN вызывает через sceKernelLoadModule+sceKernelStartModule USRDIR/Module/psmfplayer.prx
2. он и заменяется самопальным лоадером (3-й пункт необязательный, но 25 кбайт на всё-про-всё маловато, потому в данном случае я подменил его лоадером)
3. который в свою очередь загружает содержимое (которое также подверглось замене на сэмпл куба) из SYSDIR/UPDATE/EBOOT.BIN

ErikPshat 26.03.2013 21:16

:scratch_one-s_head:

Mercyful 26.03.2013 21:22

BlackDaemon,
Я с прометеем подобное делал, чтобы игру с мультизагрузчиком (YsI&II Cronicles) на 5.00 запустить )) связка была жестокая...

Ты лучше скажи, к чему это всё, потому как конечная цель непонятна. Понятно лишь одно: ты где-то подменяешь путь загрузки, где-то её цель, дабы запустить нечто размером 25кб. Но подменить в EBOOT.PBP сорано не получицо, ибо контент там зашифрован, а инлайн патчингом на PSP не припомню, чтобы кто-то занимался. Да и инлайном одним не обойдётся, ибо тебе не пару десятков байт впихнуть туда нужно.

BlackDaemon 26.03.2013 21:43

Mercyful, конечная цель - надурить эмулятор PSP на PS3 и запустить через него хомбрю. :) Видимо, придётся ждать когда окончательно разберутся с MINIS.EDAT и ISO.BIN.EDAT (по крайней мере декриптовать их уже можно).

BlackDaemon 30.03.2013 19:43

Гмм...я тут вспомнил про кое-что - в эмуляторе (по адресу dev_flash:/pspemu/flash0/usermodule) лежит три модуля в декриптованом виде - libfont.prx, libheap.prx и libpsmfplayer.prx. На попытки подменить модули чем попало при запуске чёрный экран или чёрный экран + exception, т.е. реакция на подмену есть. :D Ссылка на эти модули, может есть какой-нибудь шанс заэксплойтить эмулятор через них?

gid15 (разработчик Jpcsp) отписался, что модули аналогичные тем, которые на PSP и Kernel вызовов не используют. :crazy: Похоже, эта затея бессмысленна.

BlackDaemon 04.04.2013 12:12

Добрался я таки до запуска PSP игр. :) fake_np работает, но моя теория к сожалению не прокатила - судя по всему в эмуляторе присутствует "особый" вид защиты - все ELF/PRX должны быть подписаны, таким образом все старые игры, в которых модули и/или внешние исполняемые файлы в декриптованом виде неработают. :(

ErikPshat 04.04.2013 18:41

Цитата:

Сообщение от BlackDaemon (Сообщение 1068628)
все ELF/PRX должны быть подписаны, таким образом все старые игры, в которых модули и/или внешние исполняемые файлы в декриптованом виде неработают.

Ну так попробуй подписать их, может запустятся.

BlackDaemon 04.04.2013 18:50

ErikPshat, так дело в том, что пробовал уже :crazy:

Цитата:

seboot я на декриптованом eboot.bin от Killzone пробовал - при запуске сразу чёрный экран. :(

ErikPshat 04.04.2013 21:22

Цитата:

Сообщение от BlackDaemon (Сообщение 1068670)
ErikPshat, так дело в том, что пробовал уже :crazy:

Только непонятно, как пробовал.
А PRX-ы тоже зашифровал?

Цитата:

Сообщение от BlackDaemon (Сообщение 1068628)
все ELF/PRX должны быть подписаны


Ну если так, тогда дело не в шифровке.

ErikPshat 04.04.2013 21:48

Цитата:

Сообщение от ErikPshat (Сообщение 1068697)
А PRX-ы тоже зашифровал?

Или тебе написать инструкцию по шифровке PRX-модулей?

Собственно БАЗА уже зачата :)

BlackDaemon 05.04.2013 11:54

Что-то подписывание у меня хромает. Значит, беру Cube Sample, подписываю через seboot (тег 0xd91609f0), заменяю в образе sysdir\eboot.bin и через fake_np делаю eboot.pbp. На виртуальной 6.60 PRO-C запускается без проблем, но как только сбрасываю на оф. 6.60 - после запуска вылетает с ошибкой 0x80020148 (Bookr на оф. прошивке вылетает также).:crazy:

Yoti 05.04.2013 20:21

Цитата:

Сообщение от BlackDaemon (Сообщение 1068757)
Cube Sample

Там разве не static elf был?

BlackDaemon 05.04.2013 20:51

Yoti, прошу прощения, но на данный вопрос я ответить затрудняюсь - у меня набор знаний пользователя, так сказать. :D Ради интереса пробовал ещё вытащить из PRO-C апдейтера data.psp и засунуть в образ - вылезает та же ошибка.:crazy: Также пробовал подписывать HelloWorld - при запуске чёрный экран и PSP намертво зависает.:dash:

В общем, меня интересует любое хомбрю, которое способно запуститься на оф. прошивке из disc0:/psp_game/sysdir/eboot.bin с помощью fake_np. Заранее спасибо.thank you


Текущее время: 04:51. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.