PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Портируем старые плагины, такие, как Music.prx, под прошивку 6.60 (https://www.pspx.ru/forum/showthread.php?t=104559)

ErikPshat 18.03.2014 02:18

Портируем старые плагины, такие, как Music.prx, под прошивку 6.60
 
Вложений: 10
Портируем старый плагин Music.prx под прошивку 6.60/6.61


https://www.pspx.ru/forum/attachment....achmentid=9775

В общем пришла идея телепортации старинного отличного плагина Music.prx под прошивку 6.60.
Изначально этот плагин был изготовлен для консоли "neogeoCD 0.91" разработчиками Yoyofr & ZeLurker. Затем AhMan портировал его под PSP, во времена прошивок 3.02 ОЕ и совершенствовал его до прошивки 3.52 M33-2, добавляя кодеки и функционал.
Позже за работу взялся Cpasjuste и выпустил релиз, якобы адаптировав плагин под прошивку 3.90. С тех пор эта версия так и летает по всем просторам интернета и хорошо зарекомендовала себя в работе даже на новых прошивках.



Собственно суть проблемы такова, что на прошивке 6.60 плагин всё же неплохо работает, однако присутствуют свои костыли - это игнорирование настроек в файле конфигурации music_conf.txt, не работающие некоторые функции, по сочетаниям кнопок.

В чём состоит проблема?
Я просмотрел код плагина, он поставляется с исходниками. Несмотря на заявление Cpasjuste о портировании плагина под прошивку 3.90, я прекрасно вижу функции NID-ов от прошивок 3.7x. То есть, в прошивке 3.90 все NID-ы функций поменялись и меняются эти NID-ы постоянно от прошивки к прошивке.

Что такое NID-ы?
Это названия функций, которые вызываются именно по названию и выполняют присущие им действия. Но начиная где-то с прошивок 3.7x, Sony перестала напрямую вызывать функции в файлах своими именами, а стала скрывать их, хешируя названия в 4-байтный код, то есть к названию модуля прикрепляет закодированный номер функции. Вот как это выглядет на небольшом примере, после вывода дизассемблером PRXTool v1.1
Код:

0x01562BA3 [0x00001354] - sceAudioOutput2Reserve
0x086E5895 [0x000028A4] - sceAudioInputBlocking
0x136CAF51 [0x00000660] - sceAudioOutputBlocking
0x13F592BC [0x000008F4] - sceAudioOutputPannedBlocking
0x2D53F36E [0x00001374] - sceAudioOutput2OutputBlocking
0x38553111 [0x00001E04] - sceAudioSRCChReserve
0x41EFADE7 [0x00000C4C] - sceAudioOneshotOutput
0x43196845 [0x00001390] - sceAudioOutput2Release
0x5C37C0AE [0x00002070] - sceAudioSRCChRelease
0x5EC81C55 [0x00000AD8] - sceAudioChReserve
0x63F2889C [0x00001254] - sceAudioOutput2ChangeLength
0x647CEF33 [0x000012C4] - sceAudioOutput2GetRestSample

  • Первая 4-х байтная единица, например 0x01562BA3 - это и есть захешированный номер NID функции.
  • Следом в скобках указывается позиция, где она записывается.
  • И через тире уже нам дизассемблер даёт подсказку о самом настоящем названии функции в нехешированном виде. На самом деле этих названий вы не увидите в файле. Это разработчики PRXTool уже внесли в программу названия основных известных функций, которые не меняются.
Но на самом деле, есть ещё множество подфункций, которые SONY умышленно изменяет при выпуске очередного релиза прошивки. Вот так их опознаёт PRXTool:
Код:

0x0B61478E [0x000008F4] - sceAudio_driver_0B61478E
0x0B74AAA2 [0x000028F0] - sceAudio_driver_0B74AAA2
0x2047EAD8 [0x00000578] - sceAudio_driver_2047EAD8
0x20856A07 [0x0000105C] - sceAudio_driver_20856A07
0x2533CE02 [0x000015F4] - sceAudio_driver_2533CE02
0x3E087113 [0x00002680] - sceAudio_driver_3E087113
0x3E3C44F1 [0x00000E68] - sceAudio_driver_3E3C44F1
0x4036F0AE [0x00001E04] - sceAudio_driver_4036F0AE
0x4754D283 [0x000012C4] - sceAudio_driver_4754D283
0x6985717B [0x00000AD8] - sceAudio_driver_6985717B
0x6ACDCBB3 [0x00002934] - sceAudio_driver_6ACDCBB3

То есть, дизассемблер определяет по коду программы область подфункций, принадлежащей основному модулю sceAudio_driver и, не зная настоящего названия функции, просто подставляет его цифровой хеш к названию основного модуля - sceAudio_driver_0B74AAA2

Что за 4-х байтный хеш функции?
Как я уже упоминал ранее - это хеш полного названия функции. Хотя я и раньше оперировал с хешированными НИДами и умудрялся отыскивать нужные, но не представлял откуда берётся этот хеш. Этот секрет недавно мне поведал frostegater в соседней теме, где он выложил свою консольную утилитку по превращению названия функции в её захешированный вид. Затем Yoti облегчил этот процесс, нарисовав GUI интерфейс для быстрого ввода-вывода информации thank you. Вы можете сами потестить программку: N1D G3N3R@T0R.exe


На данном примере, на скриншоте, я взял первую строчку из 1-го блока кода выше, где указаны нерандомизированные НИДы, чтобы наглядно увидеть вывод хеша из названия функции:
  • 0x01562BA3 [0x00001354] - sceAudioOutput2Reserve
Как видно, название функции sceAudioOutput2Reserve превращается в 4-байтный код 0x01562BA3.
А заменив это название в захешированный вид, его можно использовать как-то так: sceAudio_01562BA3.
Хешь извлекается следующим образом... Из названия функции генерируется чек-сумма SHA-1 (160 bit).
В данном случае SHA-1 равна - A32B56014147A25FDE15A7AF4D596DADA06BE3AB
Затем берутся первые 4 байта и инверсируются побайтно. Получаем 01562BA3.
Скрин генерации SHA-1
Думаю с этим всем всё понятно.

С чего начинать?
Начинать следует с дизассемблирования этих функций самого плагина music.prx и вот что он нам выдаёт (я почистил лишние куски кода, которые нам абсолютно не нужны и оставил только названия функций, которые изменяются от прошивки к прошивке):
Код:

Name:    Music_prx

0xB282F4B2 [0x0000536C] - sceAudio_driver_B282F4B2
0x669D93E4 [0x00005374] - sceAudio_driver_669D93E4
0x138A70F1 [0x0000537C] - sceAudio_driver_138A70F1
0x43645E69 [0x00005384] - sceAudio_driver_43645E69

0xE56B11BA [0x000053A4] - sceDisplay_driver_E56B11BA

0xD6E50D7B [0x000053AC] - scePower_driver_D6E50D7B
0x1688935C [0x000053BC] - scePower_driver_1688935C

0xC4AAD55F [0x000053C4] - sceCtrl_driver_C4AAD55F

Вот это все изменяющиеся функции, используемые плагином для своей работы.
А теперь посмотрим на SilverSpring's PSP PRX Libraries Documentation Project. Эту тему я специально подготовил, т.к. его сайт постоянно находится в ауте. И он много времени отдал этому проекту, вычисляя NID-ы: имена функций на каждой прошивке.

Итак, открываем libdoc от прошивки 3.7х и смотрим файлы, соответствующие модулям в плагине music.prx, видим следующие цифры:
Код:

kd/audio.prx        sceAudio_Driver
                                <NAME>sceAudio_driver</NAME>
                                <FLAGS>0x00010011</FLAGS>
                                <FUNCTIONS>
                                        <FUNCTION>
                                                <NID>0x138A70F1</NID>
                                                <NAME>sceAudio_driver_138A70F1</NAME>
                                        </FUNCTION>
                                        <FUNCTION>
                                                <NID>0x43645E69</NID>
                                                <NAME>sceAudio_driver_43645E69</NAME>
                                        </FUNCTION>
                                        <FUNCTION>
                                                <NID>0x669D93E4</NID>
                                                <NAME>sceAudio_driver_669D93E4</NAME>
                                        </FUNCTION>
                                        <FUNCTION>
                                                <NID>0xB282F4B2</NID>
                                                <NAME>sceAudio_driver_B282F4B2</NAME>
                                        </FUNCTION>
                                </FUNCTIONS>
kd/display.prx        sceDisplay_Service
                                <NAME>sceDisplay_driver</NAME>
                                <FLAGS>0x00010011</FLAGS>
                                <FUNCTIONS>
                                        <FUNCTION>
                                                <NID>0xE56B11BA</NID>
                                                <NAME>sceDisplay_driver_E56B11BA</NAME>
                                        </FUNCTION>
                                </FUNCTIONS>
kd/power.prx        scePower_Service
                                <NAME>scePower_driver</NAME>
                                <FLAGS>0x00010011</FLAGS>
                                <FUNCTIONS>
                                        <FUNCTION>
                                                <NID>0x1688935C</NID>
                                                <NAME>scePower_driver_1688935C</NAME>
                                        </FUNCTION>
                                        <FUNCTION>
                                                <NID>0xD6E50D7B</NID>
                                                <NAME>scePower_driver_D6E50D7B</NAME>
                                        </FUNCTION>
                                </FUNCTIONS>
kd/ctrl.prx        sceController_Service
                                <NAME>sceCtrl_driver</NAME>
                                <FLAGS>0x00010011</FLAGS>
                                <FUNCTIONS>
                                        <FUNCTION>
                                                <NID>0xC4AAD55F</NID>
                                                <NAME>sceCtrl_driver_C4AAD55F</NAME>
                                        </FUNCTION>
                                </FUNCTIONS>

Сравнив показания плагина music.prx выше и функций прошивок 3.7х здесь, мы видим, что идёт 100% совпадение!!!
Скажу больше, в прошивке 3.90 нет этих цифр впомине. То есть, там НИДы функций полностью изменены. Поэтому заявление разработчика, что он адаптировал плагин под прошивку 3.90 - явная ложь.



Итог: нам теперь явно ясно, что для портирования плагина под прошивку 6.60, необходимо искать соответствующие НИДы функций в этих файлах:
Код:

Название файла        Название модуля

kd/audio.prx        sceAudio_Driver
kd/display.prx        sceDisplay_Service
kd/power.prx        scePower_Service
kd/ctrl.prx        sceController_Service

Проще говоря, НИДы плагина прошивки 3.7х необходимо сопоставить НИДам тех же функций прошивки 6.60.
Заменить их в исходниках и заново скомпилировать новый адаптированный плагин под 6.60.
Как правило, у каждого модуля существует определённый набор функций и их количество и порядок в файле редко изменяется. Поэтому, думаю, не составит труда сопоставить НИДы этих прошивок, либо ещё промежуточных и вывести параллели между прошивками.

Далее можно выстроить параллели каждого типа НИДа в каждой прошивке и составить таблицу.



Процесс исследования плагина music.prx
  1. Для начала, необходимо вычислить все функции рандомных NID-ов, используемых плагином. Скачиваем дизассемблер PRXTool и закидываем туда наш подопытный файл music.prx.
  2. Запускаем батник "16. ImpExp & Alias Print.bat" и получаем на выходе все Импорты и Экспорты функций, используемых плагином в текстовом файле "16_Import_Export.txt".
  3. Удаляем все лишние строки со статическими функциями, т.е. у которых нет в названии функции суффикса с 4-значным НИДом.
  4. Далее, вычисляем по рандомным НИДам версию прошивки, от которой эти НИДы были использованы. Ну тут ясное дело, что НИДы функций принадлежат прошивке 3.71.
  5. Поэтому берём файлы прошивок 3.71, в которых используются эти функции и дизасмим их. Так как я больше разбираюсь в HTML, то я выбрал батник дизасма "24. DISASM2HTML.bat" и сохранил результаты в папке под названием прошивки "371". Затем произвёл то же самое действие с аналогичными файлами от других прошивок, чтобы проследить сдвиги функций от прошивки к прошивке.
  6. Таким образом эти HTML файлы от разных прошивок я просто сравнил в браузере. Разница в НИДах и сходство кода видна невооруженным глазом. На этом примере я произвёл поиск в дизассемблированном файле audio.prx.html по НИДу sceAudio_driver_138A70F1 в прошивке 3.71. Затем, посмотрев на окружение найденного, произвёл поиск по соседнему значимому слову sceAudioOutput2Release в других прошивках, что явно вывело на аналогичный код и выдало изменившиеся НИДы, как на тарелочке с голубой каёмочкой.

  • NID в прошивке 3.71 ***
    NID в прошивке 3.71
  • NID в прошивке 3.80 ***
    NID в прошивке 3.80
  • NID в прошивке 3.95 ***
    NID в прошивке 3.95
  • NID в прошивке 5.00 ***
    NID в прошивке 5.00
  • NID в прошивке 6.20 ***
    NID в прошивке 6.20
  • NID в прошивке 6.35 ***
    NID в прошивке 6.35
  • NID в прошивке 6.60 ***
    NID в прошивке 6.60

скрины отдельно
3.71 sceAudio_driver_138A70F1 (первая строка в таблице ниже)

Вложение 9853

3.80

Вложение 9854

3.95

Вложение 9855

5.00

Вложение 9856

6.20

Вложение 9857

6.35

Вложение 9858

6.60

Вложение 9859

И в результате получилась вот такая таблица:


M U S I C . P R X P L U G I N f o r P S P -= by AhMan =-
Necessary DataFirmwares NID'sComments
FILEMODULEFUNCTION3.7x3.80/3.903.95/4.015.00/5.506.206.356.60/6.61EDITED
audio.prxsceAudio_driversceAudio_driver_138A70F1D4828217C3C2C4B43E3FAE75F462A7B90399579BB7F5A1B2hw.h; sceAudio_driver.S
audio.prxsceAudio_driversceAudio_driver_43645E6994E28BDDCD272A5D909092ABE26E49E7475F41FEAC81DE4Fhw.h; sceAudio_driver.S
audio.prxsceAudio_driversceAudio_driver_669D93E44036F0AEC15BE9A3BFC404F6A502088EE9BCD519837701CChw.h; sceAudio_driver.S
audio.prxsceAudio_driversceAudio_driver_B282F4B280BCF50CFCC526B7322078A577EBE4A2A388ABDB9D77949EsceAudio_driver.S
audio.prxsceAudio_driversceAudio_driver_035C14C62047EAD8F7083625324BA73DA5C0603BD35EFCD9671E97E8init.c
audio.prxsceAudio_driversceAudio_driver_798FB2A3C66BDCA161BBE62DF355A2632FD643D0A906D2085CDEF9A4init.c
audio.prxsceAudio_driversceAudio_driver_D6620E8E9DA39F69BCD3344C1A7526DD45457EE5686AC4F4E440DF7Dinit.c
audio.prxsceAudio_driversceAudio_driver_47D06FE6BE6F1721850A552BE8D4EE26548EEFD1C847973E17D856B9init.c
audio.prxsceAudio_driversceAudio_driver_5140D94F0B61478EC4839793DC34AC2023F19798B29D727FB7CCF1D7init.c
display.prxsceDisplay_ServicesceDisplay_driver_E56B11BA3749CDA0C28EFAA7D8D2FD3564EE9BF208A10838FBB369FDsceDisplay_driver.S
loadcore.prxLoadCoreForKernelLoadCoreForKernel_CF8A41B1F17DD6DD98D2CF2B0B53340FBEF0A05EEF8A0BEAF6B1BF0FLoadCoreForKernel.S
sysmem.prxSysclibForKernelstrcspn89B79CB189B79CB189B79CB189B79CB1MissingMissingMissingconfig.c
sysmem.prxSysclibForKernelstrspn62AE052F62AE052F62AE052F62AE052FMissingMissingMissingconfig.c
sysmem.prxSysclibForKernelstrtok87F8D2DA87F8D2DA87F8D2DA87F8D2DAMissingMissingMissingconfig.c
power.prxscePower_ServicescePower_driver_1688935C94C3991E2A12371B78834264BF5BA7FC9F53A71F04711DFBscePower_driver.S
power.prxscePower_ServicescePower_driver_D6E50D7B94BC491819387EF4AF23EFA61A41E0ED8BA12BAF766CD857scePower_driver.S
power.prxscePower_ServicescePower_driver_4431FF21114D35609AF4290C775DA4989CDB22B5A2E9E73FE52B4362init.c (3.5x 0xD66EF08D)
ctrl.prxsceController_ServicesceCtrl_driver_C4AAD55FD65D4E9A591B3F366B247CCE3CA6922B18654FC02BA616AFsceCtrl_driver.S
↑ ↑ ↑↑ ↑ ↑
Music plugin version 055 ported to sony PSP 3.90 firmware.
Cpasjuste @ http://mydedibox.fr/
Music plugin v056 for 6.60/6.61 firmware
ported by ErikPshat

Скачать: обновлённый плагин для 6.60/6/61 можно :download: отсюдава.

SILENT-Pavel 18.03.2014 03:33

Хорошая тема, поддержку этого плагина кстати добавили в тн-в на вите
может можно его модифицировать что-нибудь прикрутить типа персонализированных плейлистов для каждой отдельной игры пс1 и всякое такое?

ErikPshat 18.03.2014 14:16

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085309)
поддержку этого плагина кстати добавили в тн-в на вите

Оу, не знал этого. Тогда что нам мучиться, TN по-видимому всю работу уже произвёл. Даёшь плагин TN-V в студию.

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

SILENT-Pavel 18.03.2014 15:06

Цитата:

Сообщение от ErikPshat (Сообщение 1085314)
Насчёт персонализации для каждой игры ты уже переборьщил ))

ну всмысле чтобы плагин определял айдишник игры как это делает взломщик
и заготовленные заранее мп3 файлы играл для этого айдишника (а то осты пс1 приходится на компе хранить и заливать на виту под каждую игру вручную)
в текущей версии которую я качал отсюда такой функции вроде нет:
http://wololo.net/talk/viewtopic.php?f=56&t=17071
там в списке мьюзик.прх - фиг занет кто эту версию под 6.60 делал и когда и как

ErikPshat 18.03.2014 16:36

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085315)
там в списке мьюзик.прх - фиг занет кто эту версию под 6.60 делал и когда и как

Скачал, проверил, сравнил = совпадение 100%.
Это и есть он, плагин для прошивки 3.71.

Ты попробуй в конфиге ms0:/seplugins/music_conf.txt сменить директорию проигрывания музыки, например на DIR = ms0:/MUSIC/ или ещё что-нибудь поменять - оно не работает, всегда музыка подхватывается только из конфига по-умолчанию, встроенного внутри плагина music.prx, там прописан путь ms0:/PSP/Music/

По поводу поддержки плейлистов, я вижу в коде плагина строчки:
Код:

ea3.EA3.ID3.id3.TIT2 // это поддержка тегов, встроенных внутри музыкальных композиций
pl_cur:%08X // это наведение курсора на плейлист
Plylst Status:%08X // это информация о плейлисте
PLYLST_MEM..Playlist_Thread // и такие строчки есть

Ещё проверь, действительно ли работают эти функции, а то я сомневаюсь:
Код:

VOLUP //увеличение громкости
VOLDOWN // уменьшение громкости
START_STOP // остановка и воспроизведение
PREVIOUS // предыдущий трек
NEXT // следующий трек
MODE_TOGGLE // переключение режима воспроизведения
CPU_NEXT // увеличение скорости процессора
CPU_PREV // уменьшение скорости процессора
RELOAD // перезагрузить музыку


ErikPshat 19.03.2014 05:53

Вообщем тут такое дело...
Я сейчас живу в чужом городе, в чужой квартире, без PSP, без телевизора и радио.

Нужны декриптованные файлы PRX от разных прошивок, желательно полный набор: 3.71, 3.80, 3.95, 5.00, 6.20, 6.35, 6.60.
Это основной ряд прошивок, в которых происходили значительные изменения.
Иначе проследить передвижение NID-ов будет проблематично.
Для этого нужно:
  1. Скачать файлы обновления прошивок отсюда.
  2. Извлечь все файлы с одновременной декриптовкой по кнопке :square: с помощью PSARDumper'a
  3. Разложить извлечённые файлы PRX из папок kd и module по папочкам с названием прошивки, например 6.60_PRX_Decrypted
  4. Залить во вложения в эту тему: [БАЗА] Декриптованные RCO и PRX от всех прошивок
Надеюсь остались ещё люди с прошитыми PSP или с хакнутым эмулятором PSP на Вите, чтобы извлечь и декриптовать файлы.

P.S. Немного расширил описание в шапке. Возможно кому-то будет интересно почитать мои сказки...

SILENT-Pavel 19.03.2014 08:36

ErikPshat, постараюсь выложить указанные декриптованные модули в скором времени.
апд: уже в процессе, больше половины готово, заливаю

vash 19.03.2014 10:44

На 6.60 я вместе с 3.90 ссылки выкладывал в чате:
6.60 - http://yadi.sk/d/Iukg9RSLKfuFA
3.90 - http://yadi.sk/d/dJKDmkJ2Kftri
Ссылки постоянные.

SILENT-Pavel, если дело застопорится, напиши, я продолжу.

SILENT-Pavel 19.03.2014 11:09

vash, не вышло извлечь из 6.35 практически ничего (точнее вышло все кроме prx подулей), пробовал два раза. остальные заливаются успешно

готово: https://www.pspx.ru/forum/showthread....56#post1085356

vash 19.03.2014 11:51

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085354)
не вышло извлечь из 6.35 практически ничего (точнее вышло все кроме prx подулей)

Сейчас попробую.
П.С.: а для гошки декриптованные прошивки нужны?

ErikPshat 19.03.2014 13:07

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085354)
не вышло извлечь из 6.35 практически ничего (точнее вышло все кроме prx подулей), пробовал два раза

Ага, видел твои пустые папки 6.35 :)
Попробуй мой дампер. Правда я его только что сделал на коленке, по бырому скопипастил все ключи из нашей таблицы и закомпилил. Проверять код было некогда, возможно не туда вставил и не то. Распространению не подлежит!

Цитата:

Сообщение от vash (Сообщение 1085358)
П.С.: а для гошки декриптованные прошивки нужны?

Ну на данный момент может и не нужны.
Однако неплохо было бы пробелы в базе заполнить. А то ведь в нужный момент никогда не найдёшь.

vash 19.03.2014 13:43

Используя другой дампер PSARDumper_660_neur0n 6.35 извлеклась. https://www.pspx.ru/forum/showthread....63#post1085363

ErikPshat 19.03.2014 14:28

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

А мой дампер над головой в посту что? Там забиты все мыслимые и немыслимые ключи от всех прошивок и даже от Виты )))
Правда я на скорую руку скачал дампер Проксимы, запилил туда все наши ключи и скомпилировал. Не знаю, заработает ли вообще.

vash 19.03.2014 14:57

Цитата:

Сообщение от ErikPshat (Сообщение 1085371)
А мой дампер над головой в посту что?

Работает, но 6.35 так же полностью не дамперит.

vash 19.03.2014 15:20

ErikPshat, не спеши. Я твоим дампером не смог сдампить 6.35, за то смог им сдампить 6.60 от Гошки, а тем не смог (пустые и неполные папки). Так что, косяки в обоих версиях дамперов.

ErikPshat 19.03.2014 15:44

vash, во какая засада ))) а я уже поменял местами в инструкции. Ну пусть будет, всё равно лежат во вложении, потом надо будет с ними отдельно разбираться.
А тем временем я скомпилил дампер с исходников Нейрона с нашим пакетом ключей. Если не трудно, можешь проверить на 6.35 и на Гошке, а вдруг всё подхватит...

Кстати, оказывается там, во вложении у дамперов, лежит же моя давняя сборка, не помню какая, когда и зачем, под названием PSARDUMPER_PSPxMOD.7z, а я сразу не заметил, но помню собирал тщательно и с любовью :). Можешь ещё её потестить, если есть время. Тоже интересно узнать о костылях.

vash 19.03.2014 16:45

ErikPshat, из вложения 6.35 сдампила, 6.60 от гошки - нет.
PSARDUMPER_PSPxMOD 6.35 не сдампила, 6.60 от гошки - да.
Раньше, та что ты переделал ( https://www.pspx.ru/forum/showpost.ph...1&postcount=11 ), работала наоборот.

Yoti 19.03.2014 19:17

  1. Цитата:

    Сообщение от ErikPshat (Сообщение 1085307)
    был изготовлен для консоли "neogeoCD 0.91"

    Для эмулятора, может?

  2. Цитата:

    Сообщение от ErikPshat (Сообщение 1085307)
    Вы можете сами потестить программку: N1D G3N3R@TOR.exe

    Через ноль пишется, через ноль!

  3. HUD для 6.35 в своё время собирался добавлением "sceNids_driver_635.o" к строке OBJS в makefile и созданием файла "sceNids_driver_635.S" вида
    sceNids_driver_635.S
    Код:

    //        ------------------        //
    //        codestation's nids        //
    //        ------------------        //
        .set noreorder

    #include "pspstub.s"

            STUB_START  "sceCtrl_driver",0x00010000,0x00050005
                    STUB_FUNC        0x18654FC0,sceCtrlPeekBufferPositive
                    STUB_FUNC        0x02DD57CF,sceCtrlPeekBufferNegative
                    STUB_FUNC        0x9F3038AC,sceCtrlReadBufferPositive
                    STUB_FUNC        0xEB5F1D7A,sceCtrlReadBufferNegative
                    STUB_FUNC        0x33AB5BDB,sceCtrl_driver_5E77BC8A
            STUB_END

            STUB_START  "scePower_driver",0x00010000,0x00010005
                    STUB_FUNC        0x6C4F9920,scePowerTick
            STUB_END

            STUB_START  "sceDisplay_driver",0x00010000,0x00060005
    //                STUB_FUNC        0x00000000,sceDisplayEnable
    //                STUB_FUNC        0x00000000,sceDisplayDisable
                    STUB_FUNC        0xCCEEA6BB,sceDisplay_driver_5B5AEFAD
                    STUB_FUNC        0x89FD2128,sceDisplaySetBrightness
                    STUB_FUNC        0x3A5621E0,sceDisplayGetBrightness
                    STUB_FUNC        0x21F912F4,sceDisplayGetVcount
            STUB_END

            STUB_START  "LoadCoreForKernel",0x00010000,0x00010005
                    STUB_FUNC        0xEF8A0BEA,sceKernelFindModuleByName
            STUB_END

            STUB_START  "SysMemForKernel",0x00010011,0x00020005
                    STUB_FUNC        0x00E9A04A,sceKernelSetDdrMemoryProtection
    //                STUB_FUNC        0x00000000,sceKernelGetModel
            STUB_END


ErikPshat 20.03.2014 10:49

Цитата:

Сообщение от vash (Сообщение 1085381)
ErikPshat, из вложения 6.35 сдампила, 6.60 от гошки - нет.
PSARDUMPER_PSPxMOD 6.35 не сдампила, 6.60 от гошки - да.

Ну понятно. Теперь ясен пень, что:
  • Дампер Нейрона дампит 6.35, а для Гошки не хватает кода.
  • Дампер Прксима дампит Гошку, но спотыкается на 6.35.
Вроде бы так. Соответственно я все свои сборки попутал и использовал исходники и того и другого )))
Главное, что баг установлен, осталось дело за малым, исследовать коды обоих и найти недостающее звено.

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085356)
Рассортированные декриптованные (PSARDumper на Vita tn-v 8) PRX из папок kd и module от 3.71, 3.80, 3.95, 5.00, 6.20, 6.35, 6.60 ofws.

Проанализировал через PRXTool файлы audio.prx от всех выложенных прошивок. НИДы у всех прошивок одинаковые, как на 3.71 :D.
Этого быть не может. Ты по видимому распихал по всем папкам одну и ту же прошивку 3.71. Короче что-то дофига понапутал.

У COOLERbyPSP и vash я скачивал 3.90, 6.35 и 6.60, так там явно все НИДы меняются в каждой нововй прошивке. И исследовал готовые libdoc.xml 3.7х-5.00 с сайта SilverSpring, там аналогичная история, у каждой новой прошивки рандомизированные ниды сменяются в обязательном порядке.


Цитата:

Сообщение от Yoti (Сообщение 1085384)
1 Для эмулятора, может?
2 Через ноль пишется, через ноль!
3 HUD для 6.35 в своё время собирался добавлением "sceNids_driver_635.o" к строке OBJS в makefile и созданием файла "sceNids_driver_635.S" вида

1. Ну читал редми в исходниках на английском, про эмулятор не понял наверное.
2. Ох, ё.п.р.с.т., опять ноль пропустил, как фрост )))
3. Ну насчёт S я как бы в курсе. Именно так и собираюсь через стубы внедрядь НИДы. Ну так многие и поступают.

ErikPshat 20.03.2014 10:58

А, да, если кто собирается тоже исследовать НИДы, и не понял, каким образом их дебажить, то через PRXTool нужно пользоваться следующими батниками:
  • 12. PRXstubs.bat - выдаёт компактный чистый список НИД-ов

    Плюс в помощь:
  • 14. Depends.bat - чтобы узнать, какому файлу принадлежит модуль функции.
  • 16. ImpExp & Alias Print.bat - выдаёт хорошую расширенную информацию по НИД-ам и их смещениям.



P.S. Файлы от других прошивок ещё требуются...
План действий таков:
После декрипта файлов PSARDumer-ом, в корне создаётся папка F0.
Переименовываете папку под номер прошивки с ясным пояснением, например "371_PRX_Decrypted"
Внутри папки оставляете только папки, содержащие файлы PRX - это следующие папки:
  • kd - содержит системные файлы PRX
  • kd/resource - содержит файлы PRX, нормальный дампер их должен тоже декриптовать с заголовком ELF в хедере.
  • vsh/module - содержит ресурсные файлы PRX
  • vsh/etc - содержит файлы версии прошивки version.txt и index_0X.dat - это тоже файлы PRX, тот же version.txt, только в зашифрованном виде, нормальный дампер их должен тоже декриптовать и на выходе в текстовом редакторе должны увидеть то же содержимое, как в version.txt.

SILENT-Pavel 20.03.2014 14:26

Цитата:

Сообщение от ErikPshat (Сообщение 1085391)
Проанализировал через PRXTool файлы audio.prx от всех выложенных прошивок. НИДы у всех прошивок одинаковые, как на 3.71 :D.
Этого быть не может. Ты по видимому распихал по всем папкам одну и ту же прошивку 3.71. Короче что-то дофига понапутал.

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

кроме 6.35 все делал по инструкции, проверял несколько раз внимательно
реальная псп щас далеко от меня к сожалению

ErikPshat 20.03.2014 14:47

SILENT-Pavel, поставь Araxis Merge и сравни папки разных прошивок. Получишь результат. В проге есть возможность сравнения не по одному файлу, а сразу по 2-3 папки. Увидишь, какие файлы содержат различия, а какие идентичны. Мне долго качать эту прогу, весит аж 40 Мб. Хотя щас скачаю за часок.

Скорее всего декриптовалось всё нормально, просто когда ты всё раскладывал по папкам, наверняка копирнул в буфер прошивку 3.71 и таким образом её файлы раскидал по разным прошивкам. Поэтому размер папок разный, но обновлённые файлы от 3.71. А может это у меня что-то глюкнуло, т.к. название файла одно было audio.prx, я прогонял через PRXTool и каждый раз закидывал файл от другой прошивки. В результате все тесты оказались 100% идентичными при сравнении.

Yoti 20.03.2014 15:54

Про какие именно nid'ы хоть речь? Они могут быть изменяемые (обычно это те, что используются внутри ядра) и неизменяемые (после изменения которых отвалились бы старые игры, так что преимущественно юзермоды); могут быть быть прямые (которые sha1 от функции) и непрямые (которые "солёные" и резолвятся прошивкой в прямые).

ErikPshat 20.03.2014 19:40

Вложений: 1
Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085406)
У них же разный размер у папок по прошивкам, если это была одна - то размер был бы одинаковый, каждый раз после декриптации удалял все остатки файлов от другой прошивки и делал с нуля новую.

Ну так ты сравнивал свои папки? Я кстати не поленился и скачал посвежее версию. Ну и сравнил сразу 3 папки. Для сравнения выбрал 2 крайние и одну посередине: 3.71-5.00-6.60

Ну и вот отчёт твоей проделанной работы :)
Там персиковым цветом выделены несвязанные файлы, т.е. которые есть в одной папке, но отсутствуют в другой.
А бирюзовым цветом выделены вставленные файлы, т.е. которых не было в других папках, но были добавлены в новых.
Собсно программа сверяет файлы не по размеру, а по внутреннему содержимому побайтно и в столбике "Различия" показывает количество различающихся блоков. Ну и как видно, ни один файл не имеет ни одного отличия :xDD:
Сравнительный анализ
Так что с тебя щтрафной: декриптовать всё по новой и по правилам, написанным в той теме в шапке.



Цитата:

Сообщение от Yoti (Сообщение 1085410)
Про какие именно nid'ы хоть речь? Они могут быть изменяемые

Да, в шапке я именно про это упоминал, поэтому не выводил в список неизменяемые ниды. Но это нужно ещё проверять и отсекать солёные. Хотя фрост уверял, что можно использовать и так и эдак, т.е. под своим прямым названием, либо с хешем в суффиксе. Делать-то мы будем под одну прошивку 6.60, под все другие нам не надо.
Ну если что накосячим, надеюсь ты направишь в нужное русло ;)

Yoti 20.03.2014 22:06

Цитата:

Сообщение от ErikPshat (Сообщение 1085413)
Хотя фрост уверял, что можно использовать и так и эдак, т.е. под своим прямым названием, либо с хешем в суффиксе. Делать-то мы будем под одну прошивку 6.60, под все другие нам не надо.

Ну да, можно. Я много читал про nid'ы, но это было на английском и я уже не помню где. Возможно, на lan.st (вечная память).

SILENT-Pavel 20.03.2014 22:23

сделаем пробник по новой с чистого листа. может и правда спешил и что-то перебил горячими клавишами. Старое вложение удалил.

взял 3.71, 5.00 и 6.35
взял три дампера под 6.60 из сборника "PSARDumper's Pack 2.60-6.60"
а именно:
PSARDumper_660
PSARDumper_660_neur0n
PSARDumper_660_proxima
папку F0 целиком заливаю вообще ничего не сортируя самостоятельно из неё
все пожато LZMA и для каждой прошивки 3 версии папки F0 от разных дамперов (подписаны)
если все внутри будет правильно, доделаю остальные прошивки и залью в базу вложением,
либо может кто поможет побыстрее с реальной псп

https://www.mediafire.com/?wih7ne2v27w0o1q
21/276 mb

upd: видимо не понимаю что именно нужно и в каком виде. уступаю более понимающим, сам сливаюсь

Yoti 20.03.2014 23:10

Вложений: 1
Вот вам архивчик, который я использую для первичного реверса модулей. Кинуть в папку bin/elf/prx, запустить батник. Есть моменты, которые я всё хочу доработать, но они не такие критичные.

ErikPshat 21.03.2014 02:27

Вложений: 1
SILENT-Pavel, эх-эх, опять косяки, косяки да пяточки :) Ты бы хоть сам бы проверил, я же тебе уже и прогу подогнал.
Позже допишу, что почём.



Короче сравнил сначала в пределах одной прошивки, как отрабатывают дамперы.
Ну то есть сравнивал так:
  • !3.71- !3.71-neuron !3.71-proxima === все 3 папки оказались идентичными. Вроде всё как надо.
Потом сравнил следующие прошивки:
  • !5.00- !5.00-neuron !5.00-proxima === прошивки Unknown и neuron полностью совпадают, за исключением того, что у нейрона извлёкся ещё один лишний секретный файл: vsh\module\npsignup_plugin.prx. Видимо 2 других дампера не знают про него ничего. Нужно бы посмотреть на заголовок его в недекриптованном виде. Просьба извлечь его без декриптовки.
    А вот с proxima у них огромные различия. Откуда Проксима достал эти файлы - непонятно. Ну не могут они так декриптоваться из одного и того же EBOOT.PBP 5.00, чтобы на выходе у Проксимовского декриптора получились другие файлы.

    Сделал скриншотик
    Короче, сравнил я файлы !5.00-proxima и 3.71-proxima - они одинаковы :) Получается вместо 5.00 прошивки, дампер Проксимы декриптовал ещё раз прошивку 3.71.
Потом сравнил следующие прошивки:
  • !6.35- !6.35-neuron !6.35-proxima === только дампер Нейрона извлёк все файлы PRX. Unknown и proxima их не смогли вытащить, папки kd и module пустые. И так же, прошивки Unknown и neuron полностью совпадают, в тех оставшихся файлах RCO, которые в папке resource.
    А вот с proxima у RCO опять же отличия. Проксимовский дампер туда положил файлы от прошивки 5.00 :D
Потом стал сравнивать разные прошивки одного дампера !3.71- !5.00- !6.35- === различия есть, но их очень мало. Короче дальше не буду рассказывать, потому что ещё дальше полнейший бред. Да что говорить, если даже IPL у прошивок 3.71, 5.00 и 6.35 одинаковый )))



В общем такое ощущение, что PS VITA имеет крутой кэш и по видимому кэширует предыдущие действия. Если в следующий раз попадаются файлы с теми же именами, она их достаёт из кэша, чтобы не тратить лишнее время на декриптовку того же по названию файла, который недавно декриптовали :D Вот такое складывается впечатление.

vash 21.03.2014 10:16

Значит, нужно декриптовкой заниматься на ПСП и дампером от Нейрона? Могу сейчас заняться этим. Выложу в теме [БАЗА] Декриптованные RCO и PRX от всех прошивок без RCO-файлов.
П.С.: ErikPshat, просьба, уточни, от каких прошивок нужны на данное время эти файлы, смысла делать ото всех нет.

ErikPshat 21.03.2014 14:34

Цитата:

Сообщение от vash (Сообщение 1085429)
ErikPshat, просьба, уточни, от каких прошивок нужны на данное время эти файлы, смысла делать ото всех нет.

Желательно полный набор: 3.71, 3.80, 3.90, 3.95, 5.00, 5.50, 6.20, 6.35, 6.60.

Цитата:

Сообщение от vash (Сообщение 1085429)
[БАЗА] Декриптованные RCO и PRX от всех прошивок без RCO-файлов.

vash, лучше делай сразу по инструкции в той теме, которую я написал там в шапке, чтобы потом лишний раз не переделывать работу.
Например папки "codepage", "data", "dic", "font" совершенно не нужны во всех архивах, т.к. они во всех прошивках одинаковы и никакой полезной нагрузки не несут.

Yoti 21.03.2014 17:10

Цитата:

Сообщение от ErikPshat (Сообщение 1085438)
они во всех прошивках

Не во всех, но в последних.

ErikPshat 21.03.2014 19:15

Цитата:

Сообщение от vash (Сообщение 1085429)
Значит, нужно декриптовкой заниматься на ПСП и дампером от Нейрона?

Не факт. Просто дампер от Проксимы повёл себя так из-за кэша Виты. Скорее всего точняк Вита подсовывала файлы от предыдущих действий, поэтому в папке оказывались файлы именно от предыдущих декриптовок. В папке 5.00 оказывались файлы от 3.71, а в папке 6.35 оказывались файлы от 5.00. Соответственно, если при декриптовке 6.35 не получилось дамперу извлечь файлы PRX, то и Вита из кэша ничего не доставала.

Думаю было бы то же самое с дампером Нейрона, если бы его запускали в последнюю очередь. То есть, опять бы складывались файлы из кэша Виты от предыдущих декриптовок.
Единственное отличие дампера Нейрона, что у него заложен механизм декриптовки 6.35, а другие его не учли. Я даже предполагаю где это надо копать. Дампер Unknown повёл себя так на прошивке 6.35, потому что сделан был на осове дампера Проксимы, по видимому
SILENT-Pavel, использовал одну из моих версий, ведь там одна версия была основана на Проксиме, а другая на Нейроне. Но моя версия в теме ПСАРдампера, помнится, должна была извлекать и декриптовать файлы rebootex в корне и файлы *.img + ещё какие-то файлы, потому что я там добавлял код и ключи.

И ещё у меня есть мысля, что на Вите должна быть функция в настройках "Отключения КЭШа" ??? :scratch_one-s_head:

Цитата:

Сообщение от Yoti (Сообщение 1085446)
Не во всех, но в последних.

Ну там какой-то файл переехал из одной папки etc в папку codepage вроде и ещё может какие изменения. Лень просто щас копаться и уточнять эти несущественные вещи.

ErikPshat 29.03.2014 05:00

Итак, портирование плагина music.prx for 6.60 произведено.
Результаты исследования с таблицей и наводящая инструкция в шапке.

Просьба потестить во всех режимах на прошивке 6.60 и доложить о багах...

SILENT-Pavel 30.03.2014 15:27

ErikPshat, работает на вите.
Главное отличие визуальное от не портированного - больше информации при нажатии SELECT + квадрат

апд: походу дебаг стоит единичка в конфиге. он эту инфу и показывает

апд2: работает функция "IN_GAME_MUTE = SELECT|HOME" с эмуляцией хоум на Л + Р
на не портированном плагине эта функция не работает но показывает что типа включается и выключается

апд3: на обоих версиях плагина не получается сменить частоту цпу

ErikPshat 31.03.2014 00:02

SILENT-Pavel, о, спасибо за тесты. Нашёлся хоть один человек на форуме ЗЫЗч. Я уж подумал - совсем плагин теперь не робит.


Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085682)
больше информации при нажатии SELECT + квадрат

Хорошо бы посмотреть визуально на скриншоты. Я даже не в курсе, что он ещё что-то выдаёт на экран. Ага, вижу 10-ую строчку:
Управление из конфига :
  1. :select: + :up: = Повысить громкость.
  2. :select: + :down: = Понизить громкость.
  3. :select: + :l_trigger: = Старт/Стоп воспроизведения.
  4. :select: + :left: = Предыдущий трек.
  5. :select: + :right: = Следующий трек.
  6. :select: + :r_trigger: = Режимы (по порядку (SEQ), случайно (RAND)).
  7. :select: + :triangle: = Повысить частоту процессора.
  8. :select: + :cross: = Понизить частоту процессора.
  9. :select: + :circle: = Перезапустить плагин.
  10. :select: + :square: = Вызов на экран меню с информацией.
  11. :select: + :home: = Отключение звука в игре.
  12. :select: + :start: = Повторить.
Управление по умолчанию - основная кнопка НОТА

Можешь доложить по этим 12-ти пунктам, что работает, а что нет?

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085682)
походу дебаг стоит единичка в конфиге. он эту инфу и показывает

Так значит он стал настройки из конфига подхватывать? Говорили, что пофигу, что написано было в конфиге. Даже если сменить путь до музыки с ms0:/PSP/Music/ на ms0:/Music/, то он всё равно проигрывал только из папки по умолчанию ms0:/PSP/Music/

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085682)
апд2: работает функция "IN_GAME_MUTE = SELECT|HOME" с эмуляцией хоум на Л + Р
на не портированном плагине эта функция не работает но показывает что типа включается и выключается

:select: + :home: = Отключение звука в игре.
Ну просто замечательно! Слышал про такой баг, когда в играх не отключался звук музыки.

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085682)
апд3: на обоих версиях плагина не получается сменить частоту цпу

ОК, буду разбираться...

SILENT-Pavel 31.03.2014 17:53

Цитата:

Сообщение от ErikPshat (Сообщение 1085699)
  1. :select: + :up: = Повысить громкость.
  2. :select: + :down: = Понизить громкость.
  3. :select: + :l_trigger: = Старт/Стоп воспроизведения.
  4. :select: + :left: = Предыдущий трек.
  5. :select: + :right: = Следующий трек.
  6. :select: + :r_trigger: = Режимы (по порядку (SEQ), случайно (RAND)).
  7. :select: + :triangle: = Повысить частоту процессора.
  8. :select: + :cross: = Понизить частоту процессора.
  9. :select: + :circle: = Перезапустить плагин.
  10. :select: + :square: = Вызов на экран меню с информацией.
  11. :select: + :home: = Отключение звука в игре.
  12. :select: + :start: = Повторить.

6.60 твой порт плагина:

1. да
2. да
3. да
4. да
5. да
6. да
7. нет
8. нет
9. ?
10. да
11. да
12. да

старый оригинальный плагин с вололо:

1. да
2. да
3. да
4. да
5. да
6. да
7. нет
8. нет
9. ?
10. да
11. нет
12. да

---
- наверное в обоих случаях перезапуск плагина работает, но визуально ничего не происходит.

Цитата:

Сообщение от ErikPshat (Сообщение 1085699)
Кстати, на Вите возможно изменить частоту эмулятора PSP?

внутри xmb tn-v изменять можно
кстати насчет кэша псп ты спрашивал выше - нет такой настройки
так что все мои тесты считать адекватными только для другой виты, а не для псп сцены в целом
например потому, что виты тн-в может включать старые плагины иначе чем псп 2000 например, на псп мб не работает то что поддерживается тн-в для старых плагинов

ErikPshat 31.03.2014 22:23

Кстати, говорили, что ранее настройки из конфига совсем не подхватывались...

В частности, элементарно подхватывания музыки из директории, прописанной в конфиге:
  • ms0:/PSP/MUSIC/
  • ms0:/MUSIC/
Жалоба пошла отсюда: https://www.pspx.ru/forum/showthread.php?t=104547

SILENT-Pavel 01.04.2014 15:36

Цитата:

Сообщение от ErikPshat (Сообщение 1085717)
Кстати, говорили, что ранее настройки из конфига совсем не подхватывались...

В частности, элементарно подхватывания музыки из директории, прописанной в конфиге:
  • ms0:/PSP/MUSIC/
  • ms0:/MUSIC/
Жалоба пошла отсюда: https://www.pspx.ru/forum/showthread.php?t=104547

ну тут такое дело, что мьюзик в вите читается из памяти виты РЕЛИНКОМ из псп/мьюзик вроде
другие правила, изменять эти настройки не стоит и только усложнит весь процесс, т.к. музыку удобно скидывать в память виты и быстрее
нужен чувак с реальной псп опять же. но дебаг энейблер опция в txt идущем с плагином работает вкл/выкл, т.е. файл читается плагином, но толку то
всмысле персонализированных плейлистов для айди игры вроде же не появилось от порта на 6.60

оффтоп:
а вот насчет картинок типа скринов с игр в плагине. эти картинки дублируются в памяти виты независимо от памяти псп. интересная система и удобнее чем на обычной псп. точнее почти как на ГО версии. можно остановить игру и в памяти виты просматривать скрины

ErikPshat 01.04.2014 16:17

SILENT-Pavel, я имею в виду, что на PSP музыку можно ложить в папки ms0:/PSP/MUSIC/ или ms0:/MUSIC/
Но плагин, по идее, должен брать музыку исключительно только из той папки, которая прописана в конфиге, у которой нет комментирующего знака # спереди. Это 12 и 13 строчки в конфиге, идущим в комплекте с плагином music_conf.txt:
Код:

DIR = ms0:/MUSIC/ #must end with a slash
#DIR = ms0:/PSP/MUSIC/

Вот я и прошу проверить этот факт.

Цитата:

Сообщение от SILENT-Pavel (Сообщение 1085735)
но толку то в смысле персонализированных плейлистов для айди игры вроде же не появилось от порта на 6.60

А есть пример с исходниками, где такая функция присутствует?

Вообще странно... столько НИДов (14 штук) обновил в плагине, а так мало изменений )))

ErikPshat 01.04.2014 17:05

Опана... Себе на заметку...
NID функции LoadCoreForKernel_CF8A41B1 присутствует на прошивках 1.00 - 3.7х, а в следующих прошивках изменился.
Нужно ловить и править.
Код:

LoadCoreForKernel (loadcore.prx)
0xCF8A41B1 [0x0000540C] - LoadCoreForKernel_CF8A41B1

UPD: ещё ниды функций до 5.00 присутствуют, но изменились в 6.60
Код:

SysclibForKernel (sysmem.prx)
0x89B79CB1 [0x000054B4] - strcspn
0x62AE052F [0x000054BC] - strspn
0x87F8D2DA [0x000054CC] - strtok

UPD: по непонятным причинам в исходниках присутствует нид, который ни в одной прошивке найти не удалось. Возможно старинная функция 1.х
Код:

SystemCtrlForKernel
0xCC9ADCF8 [0x0000553C] - SystemCtrlForKernel_CC9ADCF8



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

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