PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Плагины для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=226)
-   -   HostCore 1.2.1 - Используем файловую систему ПК на PSP (https://www.pspx.ru/forum/showthread.php?t=70158)

ErikPshat 15.06.2016 02:21

Цитата:

Сообщение от karenjan99 (Сообщение 1103478)
если найдется время декриптуй файлы 6.61 заодно и в базе будет

ОК, выложил в базе. Ну они 6.60 и 6.61 мало чем отличаются.
Можешь сам сравнить папки от 6.60 и от 6.61 с помощью Araxis Merge Professional. Слева наверху в меню выбираешь сравнение папками и указываешь в окнах на папки. Делаешь сравнение и сразу прога покажет какие файлы различаются и в каком месте.

Цитата:

Сообщение от karenjan99 (Сообщение 1103478)
можешь выложить конфиг редактора?

Эмм, не понял, какой конфиг от какого редактора?

Цитата:

Сообщение от karenjan99 (Сообщение 1103478)
DISASM & DISOPTS & FUNCS создались несколько текстовиков один из них 17_DISASM_wiXDRSMW размер у него самый большой искать надо в нем?

Не обязательно, как тебе удобней. Там, под цифрой 17 должно появиться много всяких вариантов. Это просто дизасм с разным представлением, например в одном будут регистры слева, а справа смещения, а в другом будет всё наоборот. Потом в некоторых результат дизасма показывается через регистры (r1,r2,r3,...), а в других через ASM-код. В общем смотри тот, в котором тебе более удобней. Я обычно смотрю 1-ый вариант из 17-ых или в формате HTML (такой тоже должен выводится или для HTML есть отдельный батник DISASM_HTML).

Цитата:

Сообщение от karenjan99 (Сообщение 1103478)
потом тоже самое сделал с ctrl.prx от 6.60 в нем нашел ту же строку scepeekbuffer и т.д
надеюсь все правильно?

Да, да, да, ты идёшь в верном направлении. Всё так и делается. В текстовом редакторе чаще пользуйся через "Поиск" и проверяй поиск далее, чтобы убедиться, что это именно то, а не ложный дубль. Только я чаще пользуюсь бесплатным Notepad++

karenjan99 15.06.2016 12:13

Цитата:

Сообщение от ErikPshat (Сообщение 1103488)
Эмм, не понял, какой конфиг от какого редактора?

имел ввиду конфиг текстового редактора у тебя немного выше в посте syspatch.c оффсеты отображаются другим цветом ну ладн оне так уж важно :)
пользуюсь и с Notepad и с emeditor но emeditor как то больше нравится :)
а как насчет в строках где написано if fw = 500 их тоже надо менять на 600/661?

ErikPshat 15.06.2016 14:35

В посте syspatch.c подсвечивается не текстовым редактором, а BB-кодом [CODE] на форуме :D
А в EmEditor или Notepad++ есть точно такая же подсветка синтаксиса, там в настройках выбирается тема и подсвечивается синтаксис в зависимости от формата файла и расширения. Почитай про установку Тем в EmEditor, скачай Theme.Pack.zip и установи по инструкции.

Цитата:

Сообщение от karenjan99 (Сообщение 1103505)
if fw = 500 их тоже надо менять на 600/661?

Это не надо менять, а нужно добавлять по образу и подобию.
Ниже добавляешь точно такой же код, как выше и получается дополнительная поддержка 661:
  • if fw = 661
Хотя и правда, старые прошивки никому не нужны, так что можно просто менять 401 и 500 на 660 и 661.

karenjan99 15.06.2016 14:56

ErikPshat, я думал это картинка:D
ладно лучше поменяю, все равно вряд ли сейчас кто то пользуется старыми прошами :)

ErikPshat 15.06.2016 15:29

karenjan99, ОК, ты пеши если чо. Заведи себе текстовик или в сообщении на форуме, где записывай найденные NID-ы, например:
Цитата:

Код:

syspatch.c
500          661
0x919215D7 -> 0xBE30CED0
0x6B247CCE -> 0xxxxxxxxx



И потом, имей в виду, что НИД-ы не только в syspatch.c, а и в других файлах тоже нужно искать и проверять.
Я нашёл ещё зеркало с исходниками: https://github.com/Saner2oo2/hostcor...aster/HostCore
Обрати внимание на подобные комментарии к файлам и папкам:
Код:

launcher        add 4.01 iso/cso support, add wifi capability, disable savedata searc…
usbhostfs        add 5.00CFW support
log.c                update patches for 4.01
main.c                add 5.00CFW support
syspatch.h        add 5.00CFW support
tinyui.c        update patches for 4.01
umd.c                update patches for 4.01
umd.h                update patches for 4.01
usbhost.c        Added missing 5.50 check in usbhost.c
utils.c                update patches for 4.01
utils.h                Added fixes for FW 5.50
wifihost.c        add 5.00CFW support


karenjan99 15.06.2016 19:47

запутался немного некоторые нид-ы трудно найти вот теперь остановился на этом строка 123 в syspatch находится она в файлах init и modulemgr
вот мои файлы http://rgho.st/7H9kKGPZZ, пока что нашел несколько нидов в my change мои изменеия то что нашел пока. передние цифры строка в syspatch.c потом уже найденные ниды от 6.61 и в каких файлах их надо искать
вот нид с 123 строки не могу найти оно находится в файлах init modulemgr проверял оба файлов но там окружение у нидов разное и не понятно где найти его
в остальных что нашел тоже 100% не уверен что это правильные но скорее всего правильные :)

karenjan99 добавил 15.06.2016 в 19:47
500 661 Files
0x919215D7 -> 0xBE30CED0 -> ctrl.prx
0x6B247CCE -> 0x2BA616AF -> ctrl.prx
0x94A1C627 -> 0xD4B49C4B -> loadexec_01g.prx ; vshbridge
0x71F9FB1B -> 0x24114598 -> loadexec_01g.prx ; loadexec_02g.prx
0x2E96EDF8 -> 0xB57D0DEC -> impose.prx ; loadexec_01g.prx ; loadexec_02g.prx
0xB8E49712 -> xxxxxxxxxx -> init.prx ; modulemgr.prx
0xD8D2FD35 -> 0xFBB369FD -> display_01g.prx
0xFBDA7A1E -> 0xFE5884EF -> display_01g.prx

ну вот вроде это всё в файле syspatch
правда ту одну не смог найти
но как я понимаю просто йзаменой нидов палги не заработает?
ведь там есть строки if fw = 500 add offset 0xXXXXXXX их ведь тоже надо заменить чем то но как?

ErikPshat 15.06.2016 20:34

karenjan99, ну да, тяжелый случай, там идёт перечисление нидов и все секции практически схожи.
Ну я посмотрел через хекс эти файлы modulemgr.prx и в той позиции сидит такой код 955D6CB2 (в хексе он записывается задом наперёд побайтово).
Ну конечно код может сдвинуться, т.к. в 6.61 нидов добавилось. Тут нужно будет методом подбора действовать.
  • 123 - ModuleMgrForKernel_B8E49712 -> ModuleMgrForKernel_?

Цитата:

Сообщение от karenjan99 (Сообщение 1103519)
ну вот вроде это всё в файле syspatch

Да нет, вроде там намного больше.

Цитата:

Сообщение от karenjan99 (Сообщение 1103519)
ведь там есть строки if fw = 500 add offset 0xXXXXXXX их ведь тоже надо заменить чем то но как?

Это адресация. Так же дизасмишь в текстовик и ищешь известный адрес в 5.00, затем дизасмишь от 6.61 и смотришь новый адрес в том же месте.

karenjan99 15.06.2016 20:43

ErikPshat, ModuleMgrForKernel в init от 500 начинается с строки 2370 и заканчивается на 2522 сам B8E49712 в строке 2458
а в 661 ModuleMgrForKernel начинается с 2416 и зканчивается на 2616 (всего 26) а в 500 всего 20
ну а добавились они либо сверху либо снизу да? в 500 B8E49712 12-ый если посчитать сверху т.е в 661 оно должно находится в строке 2504 (76F0E956)
а если снизу то 9ый и 661 должен быть в строке 2552 (955D6CB2)

ErikPshat 15.06.2016 20:44

Допустим вот такой код...
Код:

unsigned int getFindDriverAddr( void )
{
        tSceModule * pMod = ( tSceModule * )sceKernelFindModuleByName( "sceIOFileManager" );
        unsigned int addr = 0;
        if ( !pMod )
                return 0;
        if ( fw_version == FW_371 )
                addr = pMod->text_addr + 0x00002844;
        else if ( fw_version == FW_380 || fw_version == FW_390 )
                addr = pMod->text_addr + 0x00002808;
        else if ( fw_version == FW_401 )
                addr = pMod->text_addr + 0x000027EC;
        else if ( fw_version == FW_500 || fw_version == FW_550 )
                addr = pMod->text_addr + 0x00002838;
        return addr;
}


Тут понятно, что это файл IOFileManager.prx. Тут есть известные смещения у разных прошивок FW_371, FW_380/FW_390, FW_401, FW_500/FW_550. Можешь отдизасмить этолт файл от разных прошивок и вбить в поиск адресацию соответственно 0x00002844, 0x00002808, 0x000027EC, 0x00002838. Ты увидишь, что этот адрес будет попадать в одно и то же место.

karenjan99 15.06.2016 20:44

Цитата:

Сообщение от ErikPshat (Сообщение 1103525)
Это адресация. Так же дизасмишь в текстовик и ищешь известный адрес в 5.00, затем дизасмишь от 6.61 и смотришь новый адрес в том же месте

а их нет, replace studio ничего не находит

ErikPshat 15.06.2016 20:48

Цитата:

Сообщение от karenjan99 (Сообщение 1103526)
ну а добавились они либо сверху либо снизу да?

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

Цитата:

Сообщение от karenjan99 (Сообщение 1103528)
а их нет, replace studio ничего не находит

Не, это же не NID-ы, а адрес позиции. Это в дизассемблированном текстовике нужно искать через поиск текстового редактора.

karenjan99 15.06.2016 20:49

ну ладно этот нид пускай пока останется найду все остальные что смогу то что не получилось запишу в файлик

karenjan99 добавил 15.06.2016 в 20:49
Цитата:

Сообщение от ErikPshat (Сообщение 1103530)
Не, это же не NID-ы, а адрес позиции. Это в дизассемблированном текстовике нужно искать через поиск текстового редактора.

ааа ну теперь понятно:)
собираю палгин для псп НЕ ЗНАЯ что именно я делаю:D:lol:

ErikPshat 15.06.2016 21:18

Цитата:

Сообщение от karenjan99 (Сообщение 1103531)
собираю палгин для псп НЕ ЗНАЯ что именно я делаю:D:lol:

Ну так сначала ничего не понимаешь, зато потом можешь стать профессионалом ;)
Главное не останавливаться, копать, анализировать и разбираться, тогда всё получится.

karenjan99 15.06.2016 21:27

Цитата:

Сообщение от ErikPshat (Сообщение 1103530)
в дизассемблированном текстовике нужно искать через поиск текстового редактора.

да их невозоможн онайти:cray:

else if ( fw_version == FW_500 || fw_version == FW_550 )
threadman_offset = 0x000121E0;

вот например надо искать в файле threadman ну да открыл я его

name="loc_00012190">loc_00012190:</a>
; Refs: <a href="#0x00012174">0x00012174</a>
<a name="0x00012190"></a> addiu $s4, $s4, -0x20 ; 0x00012190: 0x2694FFE0 '...&'
<a name="0x00012194"></a> li $t5, 0x10 ; 0x00012194: 0x240D0010 '...$'
<a name="0x00012198"></a> lui $t4, 0x0 ; 0x00012198: 0x3C0C0000 '...&lt;'
<a name="0x0001219C"></a> move $a0, $s2 ; 0x0001219C: 0x02402021 '! @.'
<a name="0x000121A0"></a> move $a1, $s4 ; 0x000121A0: 0x02802821 '!(..'
<a name="0x000121A4"></a> jal <a href="#SysMemForKernel_940FCB99">SysMemForKernel_940FCB99</a> ; 0x000121A4: 0x0C005CE6 '.\..'
<a name="0x000121A8"></a> sw $t5, 0x6D0($t4) ; 0x000121A8: 0xAD8D06D0 '....'
<a name="0x000121AC"></a> bnez $v0, <a href="#loc_00012494">loc_00012494</a> ; 0x000121AC: 0x144000B9 '..@.'
<a name="0x000121B0"></a> move $fp, $v0 ; 0x000121B0: 0x0040F021 '!.@.'
<a name="0x000121B4"></a> lw $t6, 0x14($s0) ; 0x000121B4: 0x8E0E0014 '....'
<a name="0x000121B8"></a> bltzl $t6, <a href="#loc_0001247C">loc_0001247C</a> ; 0x000121B8: 0x05C200B0 '....'
<a name="0x000121BC"></a> lw $t8, 0xC($s4) ; 0x000121BC: 0x8E98000C '....'
<a name="0x000121C0"></a> lw $fp, 0xC($s4) ; 0x000121C0: 0x8E9E000C '....'
<a name="0x000121C4"></a> andi $t9, $fp, 0x3 ; 0x000121C4: 0x33D90003 '...3'
<a name="0x000121C8"></a> bnez $t9, <a href="#loc_0001245C">loc_0001245C</a> ; 0x000121C8: 0x172000A4 '.. .'
<a name="0x000121CC"></a> srl $a1, $s3, 22 ; 0x000121CC: 0x00132D82 '.-..'

<a name="loc_000121D0">loc_000121D0:</a>
; Refs: <a href="#0x00012484">0x00012484</a>
<a name="0x000121D0"></a> xori $a0, $a1, 0x1 ; 0x000121D0: 0x38A40001 '...8'
<a name="0x000121D4"></a> lui $v0, 0x0 ; 0x000121D4: 0x3C020000 '...&lt;'
<a name="0x000121D8"></a> andi $a2, $a0, 0x1 ; 0x000121D8: 0x30860001 '...0'
<a name="0x000121DC"></a> addiu $a1, $v0, 0x6F0 ; 0x000121DC: 0x244506F0 '..E$'
<a name="0x000121E0"></a> move $a0, $s2 ; 0x000121E0: 0x02402021 '! @.'
<a name="0x000121E4"></a> move $a3, $s5 ; 0x000121E4: 0x02A03821 '!8..'
<a name="0x000121E8"></a> jal <a href="#SysMemForKernel_5630F321">SysMemForKernel_5630F321</a> ; 0x000121E8: 0x0C005CE2 '.\..'
<a name="0x000121EC"></a> move $t0, $zr ; 0x000121EC: 0x00004021 '!@..'
<a name="0x000121F0"></a> blez $v0, <a href="#loc_00012388">loc_00012388</a> ; 0x000121F0: 0x18400065 'e.@.'
<a name="0x000121F4"></a> move $v1, $v0 ; 0x000121F4: 0x00401821 '!.@.'
<a name="0x000121F8"></a> lw $a2, 0x14($s0) ; 0x000121F8: 0x8E060014 '....'
<a name="0x000121FC"></a> bltz $a2, <a href="#loc_00012454">loc_00012454</a> ; 0x000121FC: 0x04C00095 '....'
<a name="0x00012200"></a> sw $v0, 0x12C($s0)



и как же его найти в threadman от 661:dash:

голова уже болит:D отдохну немного:D:D:D

ErikPshat 15.06.2016 22:11

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

Сообщение от karenjan99 (Сообщение 1103534)
да их невозоможн онайти:cray:

Ну вот смотри, взять тот же самый первый код в syspatch.c. Я тут дописал код для 6.60/6.61
Код:

unsigned int getFindDriverAddr( void )
{
        tSceModule * pMod = ( tSceModule * )sceKernelFindModuleByName( "sceIOFileManager" );
        unsigned int addr = 0;
        if ( !pMod )
                return 0;
        if ( fw_version == FW_371 )
                addr = pMod->text_addr + 0x00002844;
        else if ( fw_version == FW_380 || fw_version == FW_390 )
                addr = pMod->text_addr + 0x00002808;
        else if ( fw_version == FW_401 )
                addr = pMod->text_addr + 0x000027EC;
        else if ( fw_version == FW_500 || fw_version == FW_550 )
                addr = pMod->text_addr + 0x00002838;
        else if ( fw_version == FW_660 || fw_version == FW_661 )
                addr = pMod->text_addr + 0x00002A4C;
        return addr;
}


Смотри скриншоты шестерёнкой... Открой все в браузере, потом щёлкай по очереди вкладки:
Нажмите для увеличения
Нажмите для увеличения
Нажмите для увеличения
Нажмите для увеличения
Нажмите для увеличения




Есть ещё простой вариант, чтобы не копаться с PRXTool...
Разархивируй прогу в корень любого диска или на рабочий стол CTFtool GUI v5 Beta 3 (в ней тоже есть PRXTool, только работает на лету)
  1. При первом запуске, необходимо запустить экзешник правой кнопкой "Запуск от имени Администратора" обязательно!
  2. Потом просто жмёшь по файлу PRX правой кнопкой и выбираешь в контекстном меню "CTFtool Menu -> Disassembly Filename.prx"
  3. Рядом получаешь дизассемблированный файл ASM.
  4. Ассоциируешь расширение ASM с текстовым редактором, например "Открыть с помощью...", указываешь редактор и ставишь галочку типа "Всегда открывать файлы такого типа этой программой".
  5. Потом сразу будет открываться такой файл в редакторе с подсветкой синтаксиса.

karenjan99 15.06.2016 23:01

этот я тоже нашел а вот другие чет не получается
например вот этот
tSceModule * pMod = ( tSceModule * )sceKernelFindModuleByName( "sceThreadManager" );
//a0 = 4, change partition id to 4
if ( fw_version == FW_371 )
threadman_offset = 0x00010B30;
else if ( fw_version == FW_380 || fw_version == FW_390 )
threadman_offset = 0x00010CB8;
else if ( fw_version == FW_401 )
threadman_offset = 0x00012154;
else if ( fw_version == FW_500 || fw_version == FW_550 )
threadman_offset = 0x000121E0;
_sw( 0x34040004, pMod->text_addr + threadman_offset );

sceThreadManager что это за файл? threadman.prx? в нем то такой код есть 0x000121E0
и оно находится в таких строках

<a name="loc_000121D0">loc_000121D0:</a>
; Refs: <a href="#0x00012484">0x00012484</a>
<a name="0x000121D0"></a> xori $a0, $a1, 0x1 ; 0x000121D0: 0x38A40001 '...8'
<a name="0x000121D4"></a> lui $v0, 0x0 ; 0x000121D4: 0x3C020000 '...&lt;'
<a name="0x000121D8"></a> andi $a2, $a0, 0x1 ; 0x000121D8: 0x30860001 '...0'
<a name="0x000121DC"></a> addiu $a1, $v0, 0x6F0 ; 0x000121DC: 0x244506F0 '..E$'
<a name="0x000121E0"></a> move $a0, $s2 ; 0x000121E0: 0x02402021 '! @.'
<a name="0x000121E4"></a> move $a3, $s5 ; 0x000121E4: 0x02A03821 '!8..'
<a name="0x000121E8"></a> jal <a href="#SysMemForKernel_5630F321">SysMemForKernel_5630F321</a> ; 0x000121E8: 0x0C005CE2 '.\..'
<a name="0x000121EC"></a> move $t0, $zr ; 0x000121EC: 0x00004021 '!@..'
<a name="0x000121F0"></a> blez $v0, <a href="#loc_00012388">loc_00012388</a> ; 0x000121F0: 0x18400065 'e.@.'
<a name="0x000121F4"></a> move $v1, $v0 ; 0x000121F4: 0x00401821 '!.@.'
<a name="0x000121F8"></a> lw $a2, 0x14($s0) ; 0x000121F8: 0x8E060014 '....'
<a name="0x000121FC"></a> bltz $a2, <a href="#loc_00012454">loc_00012454</a> ; 0x000121FC: 0x04C00095 '....'
<a name="0x00012200"></a> sw $v0, 0x12C($s0)

ну это явно не то что мне нужно там же таких строк более 20000 это же невозможно найти в threadman от 661, другой файл с похожим названием не нашел

karenjan99 добавил 15.06.2016 в 23:01
Цитата:

Сообщение от ErikPshat (Сообщение 1103535)
Есть ещё простой вариант, чтобы не копаться с PRXTool

все prx-ы кинул в папку с prxtool 1.1 запустил батник html теперь есть html для всех файлов
ну и открываются через пр. клик emedit проблем с этим нет :)

ErikPshat 15.06.2016 23:40

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

Сообщение от karenjan99 (Сообщение 1103536)
sceSystemMemoryManager что это за файл? sysmem.prx? в нем то такой код есть 0x00003AA8

Смотри внимательно, в заголовке окна виден путь и версия прошивки:
Нажмите для увеличения
Нажмите для увеличения
Нажмите для увеличения
Нажмите для увеличения

На картинке в браузере курсор приобретает вид + или -, щёлкаешь мышкой плюсик и картинка разворачивается в оригинальный размер.

Я не понимаю, откуда ты выдёргиваешь такой хитрый код?:
Цитата:

<a name="0x000121D0"></a> xori $a0, $a1, 0x1 ; 0x000121D0: 0x38A40001 '...8'
<a name="0x000121D4"></a> lui $v0, 0x0 ; 0x000121D4: 0x3C020000 '...&lt;'
<a name="0x000121D8"></a> andi $a2, $a0, 0x1 ; 0x000121D8: 0x30860001 '...0'
<a name="0x000121DC"></a> addiu $a1, $v0, 0x6F0 ; 0x000121DC: 0x244506F0 '..E$'
Это ты смотришь HTML в текстовике?
<a name="0x000121D4"></a> - это же ссылка интернета :D

HTML нужно открывать в браузере, а поиск в браузере производить по CTRL+F и смотреть окружение.
То есть, выделяешь искомое и копируешь CTRL+C, затем открываешь HTML в браузере автоматически и жмёшь CTRL+F, вставляешь искомое туда CTRL+V и листаешь поиск стрелками.


karenjan99 16.06.2016 00:12

Цитата:

Сообщение от ErikPshat (Сообщение 1103538)
<a name="0x000121D4"></a> - это же ссылка интернета

да ну не знал:D да не мозги еще на месте :Dпросто браузер тупит поэтому в текстовике открываю но какая разница главное текст виден:D
а ну ладно теперь я понял, просто тогда я думал что обязательно надо искать типа в таком строке Subroutine sceAudio_driver_324BA73D - Address 0x00000578 - Aliases: sceAudioOutput
а prx-ы лучше в текстовик перегоняю а то неразбериха html в редакторе:lol:

ErikPshat 16.06.2016 00:27

karenjan99, а чо браузер тупит? Поставь Google Chrome, он вроде память не кушает много и быстро открывается.
С Оперы и Мазилы я спрыгнул давно, т.к. память у них утекает в бесконечность.

Цитата:

Сообщение от karenjan99 (Сообщение 1103540)
а prx-ы лучше в текстовик перегоняю а то неразбериха html в редакторе

Ну лучше делай, как я советовал, через CTFtool GUI. Там просто нужный файл правой кнопкой тут же дизассемблишь в той же папке и сразу открываешь, и ASM хорошо подсвечивает синтаксис, не то что TXT. Не надо таскать файлы в папку PRXTool и баловаться батниками.

А если уж так приспичило через PRXTool, тогда придётся по одному PRX таскать в папку.
Юзай первый "17_DISASM_w.txt", там по-моему самый удобный код.
В EmEditor в настройках для всех конфигураций выставь на вкладке "Вид" подсветку синтаксиса из темы (там есть выбор тем, они идут в комплекте по дефолту несколько штук)

А я пойду спать, уже башка набекрень отваливается...

karenjan99 16.06.2016 14:03

ErikPshat, funday СЛУЧАЙНО :D в браузеры попал лень удалить:D
да ладно завтра разберусь:dash: я тоже пойду спасибо за помощ :)

karenjan99 добавил 16.06.2016 в 14:03
sceNet_Service
sceNetInterface_Service
sceNet_Library
что за prx-ы? что то не могу определится

ErikPshat 16.06.2016 18:52

Цитата:

Сообщение от karenjan99 (Сообщение 1103542)
sceNet_Service
sceNetInterface_Service
sceNet_Library
что за prx-ы? что то не могу определится

Ну это ifhandle.prx. Там же в исходниках написано в комментариях:
Код:

void wifiModulesPatch2()
{       
        if ( fw_version == FW_550 ) {
            //module renamed to sceNet_Service in 5.50
                tSceModule *  pMod = ( tSceModule * )sceKernelFindModuleByName( "sceNet_Service" );
                //a2 partid = 4 of ifhandle
            _sw( 0x34050004, pMod->text_addr + 0x000014D8 );  //for 5.50
    } else {
            tSceModule *  pMod = ( tSceModule * )sceKernelFindModuleByName( "sceNetInterface_Service" );
            _sw( 0x34050004, pMod->text_addr + 0x00001440 );  //for 3.71, 3.80, 3.90, 4.01, 5.00


Если перевести //module renamed to sceNet_Service in 5.50 - получается //модуль sceNet_Service переименован в прошивке 5.50
А до этого он назывался sceNetInterface_Service в прошивках //for 3.71, 3.80, 3.90, 4.01, 5.00
Поэтому берём Replace Studio и ищем название sceNetInterface_Service в файлах *.XML в папке C:\pspsdk\doc\pspsdk\silverspring.lan.st

Там записана коллекция NID-ов до прошивки 5.00. А так как название модуля изменилось в прошивке 5.50, значит в 6.61 оно тоже будет иметь новое название sceNet_Service и возможно даже название файла может измениться. Поэтому, берём Replace Studio и ищем это название sceNet_Service в файлах *.PRX прошивки 6.61. То есть, не забываем сменить "Маску файла" со *.xml на *.prx и указываем путь к папке с декриптованными файлами PRX прошивки 6.61.

karenjan99 16.06.2016 21:12

вообщем то получилось вот так вот

500 661 Files
0x3FC9AE6A -> 0x3FC9AE6A -> sysmem.prx
0x00002838 -> 0x00002A4C -> iofilemgr.prx
0x919215D7 -> 0xBE30CED0 -> ctrl.prx
0x6B247CCE -> 0x2BA616AF -> ctrl.prx
0x94A1C627 -> 0xD4B49C4B -> loadexec_01g.prx ; vshbridge
0x71F9FB1B -> 0x24114598 -> loadexec_01g.prx ; loadexec_02g.prx
0x2E96EDF8 -> 0xB57D0DEC -> impose.prx ; loadexec_01g.prx ; loadexec_02g.prx
0xB8E49712 -> xxxxxxxxxx -> init.prx ; modulemgr.prx
0x7C8A2B62 -> 0xC2A5E6CA -> modulemgr.prx ; init.prx не уверен
0xf8170fbe -> 0xf8170fbe -> clockgen.prx
0xD8D2FD35 -> 0xFBB369FD -> display_01g.prx
0xFBDA7A1E -> 0xFE5884EF -> display_01g.prx
0x00001304 -> 0x00001B94 -> sysmem.prx
0x00003AA8 -> 0x00004184 -> sysmem.prx
0x00001F3C -> 0x00002464 -> loadexec_01g.prx не уверен
0x000121E0 -> 0x00012F90 -> threadman.prx (661 23932 line) не уверен
0x00007C84 -> 0x00008398 -> modulemgr.prx
0x3C070001 -> 0x3C0A0001 -> ???
0x34050004 -> xxxxxxxxxx -> ifhandle.prx???
0x00001440 -> 0x00001780 -> ifhandle.prx (line 2015 661) не уверен
0x00002348 -> 0x000024E0 -> ifhandle.prx ((line 3119 661)??? не уверен) и есть в pspnet.prx в обеих и от 500 и от 661 не изменено 0x00002348
0x34020002 -> xxxxxxxxxx -> pspnet.prx нет оффсета }
0xAFA20000 -> xxxxxxxxxx -> pspnet.prx нет оффсета }
0x3C020000 -> xxxxxxxxxx -> pspnet.prx нет оффсета }Либо не тот файл
0x34074000 -> xxxxxxxxxx -> modulemgr.prx нет оффсета }
0x02403821 -> xxxxxxxxxx -> modulemgr.prx нет оффсета }
0x02402021 -> xxxxxxxxxx -> threadman.prx нет оффсета }


я много в чем не уверен:D

ErikPshat 17.06.2016 18:23

Вложений: 1
karenjan99, у меня вот что получилось:
Код:

syspatch.c
    FW 5.00      FW 6.61
064 0x00002838 -> 0x00002A4C (iofilemgr.prx)
089 0x919215D7 -> 0xBE30CED0 (ctrl.prx)
090 0x6B247CCE -> 0x2BA616AF (ctrl.prx)
127 0x94A1C627 -> 0x08F7166C (loadexec.prx)
128 0x71F9FB1B -> 0x24114598 (loadexec.prx)
129 0x2E96EDF8 -> 0xB57D0DEC (loadexec.prx)
130 0xB8E49712 -> 0xFE61F16D (modulemgr.prx) ?
131 0x7C8A2B62 -> 0xCE0A74A5 (modulemgr.prx) ?
167 0xD8D2FD35 -> 0xFBB369FD (display.prx)
168 0xFBDA7A1E -> 0xFE5884EF (display.prx)
194 0x00003AA8 -> 0x00004184 (sysmem.prx)
242 0x00001E58 -> 0x00002384 (loadexec.prx)
270 0x000121E0 -> 0x00012F90 (threadman.prx)
284 0x00007C84 -> 0x00008398 (modulemgr.prx)
304 0x00001440 -> 0x00001780 (ifhandle.prx)
314 0x00002348 -> 0x00002348 (pspnet.prx) не изменилось!


Я не стал заменять исходные данные, а просто добавил поддержку 6.60/661
Номера строк соответствуют данным прошивки 5.00, а данные прошивки 6.60/6.61 дописаны ниже.
Поэтому смотри мой файл из вложения, т.к. файл увеличился и номера строк соответствуют новым подвижкам.

P.S. У тебя прогрессирует невнимательность, ты в каком-то месте взял данные от 5.50, а сравнивал файл от 5.00.



Ну так потом можешь сам компилировать и проверять работу плагина, у тебя же установлен PSPSDK.
Чтобы не сыпались ошибки, т.к. ты добавил новые прошивки 6.60 и 6.61, о которых компилятор ничего не знает, нужно объявить новые прошивки в исходниках.
Для этого, открой файл utils.h, там увидишь обявление прошивок в таком виде:
Код:

enum PspFwVersion
{
        FW_371 = 0x03070110,
        FW_380 = 0x03080010,
        FW_390 = 0x03090010,
        FW_401 = 0x04000110,
        FW_500 = 0x05000010,
        FW_550 = 0x05050010,
};


Добавь туда FW_660 и FW_661, должно получиться вот так:
Код:

enum PspFwVersion
{
        FW_371 = 0x03070110,
        FW_380 = 0x03080010,
        FW_390 = 0x03090010,
        FW_401 = 0x04000110,
        FW_500 = 0x05000010,
        FW_550 = 0x05050010,
        FW_660 = 0x06060010,
        FW_661 = 0x06060110,
};


Потом, чтобы скомпилировать программу, в этой папке с исходниками (где лежит файл Makefile), производишь следующие действия:
  1. Удерживаешь клавишу SHIFT и щёлкаешь правой кнопкой мыши в пустом месте этой папки.
  2. В контекстном меню появится пункт "Открыть окно команд".
  3. В окне команд пишешь команду "make" (без кавычек) и наблюдаешь за процессом компиляции.
  4. Чтобы удалить результаты компиляции и привести всё к исходному виду, пишешь команду "make clean". Это нужно делать перед каждой новой компиляцией, чтобы не замешать в новую компиляцию результаты от старой компиляции.
То же самое делаешь в других папках (где лежит файл Makefile), для компиляции других модулей программы. Правда там тоже нужно проверять и менять НИД-ы.

karenjan99 17.06.2016 19:07

Цитата:

Сообщение от ErikPshat (Сообщение 1103566)
P.S. У тебя прогрессирует невнимательность

с возрастом пройдет :D
а файл ты полностью правил? те с ним закончено или еще надо что то искать?
как насчет вот этих?
0x34020002
0xAFA20000
0x3C020000
0x34074000
0x02403821
0x02402021
и еще этот 0x3C070001

их не нужно менять?

ErikPshat 17.06.2016 19:19

Цитата:

Сообщение от karenjan99 (Сообщение 1103568)
как насчет вот этих?
их не нужно менять?

Нет, это к НИД-ам или к оффсетам или к прошивкам не имеет никакого отношения. Не мудрено, что у тебя получилось "нет оффсета }" :D

Скомпилируй новый hostcore.prx и проверь, как он работает. Потом перейдём к проверке других файлов, там тоже явно есть что менять.

Цитата:

Сообщение от karenjan99 (Сообщение 1103568)
а файл ты полностью правил? те с ним закончено или еще надо что то искать?

Да, похоже с этим файлом полностью закончено.

karenjan99 17.06.2016 19:37

скомпилил, не робит, вот http://rgho.st/7MJMkt5bd
когда нажимаю на нотку ниче не происходит исходник тот что ты ссылку кидал
у меня 6.61 promod

ErikPshat 17.06.2016 20:21

Цитата:

Сообщение от karenjan99 (Сообщение 1103573)
скомпилил, не робит, вот http://rgho.st/7MJMkt5bd

Ну не мудрено, что не робит, там же ещё куча других файлов :D
Я просто хотел проверить, как ты осилишь процесс компиляции :xD:
Ну а раз получилось, значит ты уже почти профи :xDD:

Да..., и почти все смещения ты сам правильно нашёл, если не учитывать, что ты ещё перестарался с теми, которые вообще не нужно трогать.
Так что не всё так печально, главное ты уже кое-в-чём разбираешься. На самом деле ведь там ничего сложного нет.

Насчёт кода программы:
Код:

        if ( fw_version == FW_371 )
                addr = pMod->text_addr + 0x00002844;
        else if ( fw_version == FW_380 || fw_version == FW_390 )
                addr = pMod->text_addr + 0x00002808;
        return addr;


Ты наверное заметил, что там постоянно сталкиваешься со словами if и else.
Тут главное понимать, что это значит и уметь читать код.
  • if - означает по-русски если. Причем это не просто "если", а условие.
    То есть, как бы ты выдвигаешь условие: "Если ты мне не дашь мороженое, в противном случае я тебе засажу всю аллею цветами".

  • else - означает по-русски в противном случае. Поэтому этот код срабатывает, если предыдущий если не соответствует условиям.

  • || - это оператор ИЛИ.

Таким образом переводим этот код на русский язык:
Код:

        если ( версия прошивки равно FW_371 )
                тогда исполняем этот код: addr = pMod->text_addr + 0x00002844;
        в противном случае если ( версия прошивки равно FW_380 ИЛИ версия прошивки равно FW_390 )
                тогда исполняем этот код: addr = pMod->text_addr + 0x00002808;
        return addr;


karenjan99 17.06.2016 20:25

ErikPshat, ну ладно не ржи :D я думал что меню плагина должен открыватся уже :) :D

Цитата:

Сообщение от ErikPshat (Сообщение 1103574)
Ты наверное заметил, что там постоянно сталкиваешься со словами if и else.
Тут главное понимать, что это значит и уметь читать код.

про это еще месяц назад узнал (пишу тупые проги в vb :D вот один из них https://rutracker.org/forum/viewtopic.php?t=5218486 :D)

ErikPshat 17.06.2016 20:27

karenjan99, ах да, забыл добавить. Чтобы произвести полную компиляцию всей программы, нужно ввести команду "make release".
Результат получишь в новой создавшейся папке "release" или в появившемся архиве "HostCore_1.2.tar.gz".

karenjan99 17.06.2016 20:41

эт тоже менять?
setUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xB64186D0 );
getUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xAC56B90B );
setInitApitype = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x8d5be1f0 );
setInitFileName = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x128112c3 )
слушай ты не темни, этот плагин в конце концов заработает? :D

ErikPshat 17.06.2016 21:27

karenjan99, да, там больше ловить нечего, вроде всё пучком должно быть. Нужно смотреть другие папки и компилить полностью программу.
В корне ms0:/ должна лежать новая папка ms0:/HostCore

Цитата:

Сообщение от karenjan99 (Сообщение 1103578)
эт тоже менять?
setUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xB64186D0 );
getUmdFile = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0xAC56B90B );
setInitApitype = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x8d5be1f0 );
setInitFileName = ( void * )findProc( "SystemControl", "SystemCtrlForKernel", 0x128112c3 )

Нет, это функции кастомной прошивки. Они должны подхватываться через NID_resolver прошивки 661, если разрабы PRO не забыли их прописать.
Можешь загуглить эти НИД-ы.

karenjan99 17.06.2016 21:38

http://i77.fastpic.ru/big/2016/0617/...7fd3a31a2a.png

ErikPshat 17.06.2016 22:07

Вложений: 1
karenjan99, ну у тебя ошибка перемещения.
Из папки extras копируется всё содержимое в папку release/HostCore.
Потом файл readme.txt должен переместиться из папки release/HostCore в папку release, но этого не происходит.
Может файла readme.txt нету в исходной папке extras и он не скопировался в папку release/HostCore, либо по каким-то причинам он не может переместиться из папки release/HostCore в папку release.

Короче, вот готовая сборка: во вложении. Тестируй, отключи все другие плагины.

karenjan99 17.06.2016 22:31

не робит

ErikPshat 17.06.2016 23:02

karenjan99, ну так нужно на компьютере установить USB TYPE B, а затем включить USB Host и активировать плагин. В шапке usbhostfs.exe совсем, мне кажется, не рабочий.
Читай в этой теме 5. Установка драйвера хоста "USB Type B" или в этой: https://www.pspx.ru/forum/showthread.php?t=77900

Ещё можно почитать здесь: http://pspfaqs.ru/faqs/18-psphost.html

karenjan99 17.06.2016 23:18

я вообще то вай фай хотел использовать
psphost давно стоял а усб режим ругался
On 64 bit, Installs to Windows\syswow64\libusb0.dll
копировал туда теперь не ругается но все равно при подключении не просит установить драйвер да и если нажать на нотку меню и так должна появится а у меня не появляется

ErikPshat 17.06.2016 23:27

karenjan99, ну тогда забей, поигрались и хватит :D
Я вообще не соображаю, что делать с этим хостом и зачем он сдался :)
Вот RemoteJoy Lite нормально работает и понятно, почему и как она должна работать.
А по этой инструкции я сомневаюсь, что вообще должно заработать.

На компе эта программа вроде делает вид, что работает, но по-моему нифига она не работает.
Проще откатиться на 5.00 М33-6 и пользоваться, ну хотя бы попытаться завести, а если заведётся, тогда и тестировать на 6.61.

karenjan99 17.06.2016 23:32

ErikPshat,3 дня тупо посидел из за этого плагина ну спасибо :D
хотя много нового узнал + куча софта которые упростили жизнь
:lol:

karenjan99 добавил 17.06.2016 в 23:32
p.s. не в теме но случаем в синтезаторах/циф пианино/миди клавиатур не разбираешься? ты же профи :D

ErikPshat 17.06.2016 23:40

Цитата:

Сообщение от karenjan99 (Сообщение 1103592)
p.s. не в теме но случаем в синтезаторах/циф пианино/миди клавиатур не разбираешься? ты же профи


karenjan99 17.06.2016 23:45

ErikPshat, жаль а я хотел спросить возможно ли самому научится играть на фо-пиано а то в гугле часть пишут возможно часть нет, а академики в форумах вообще НЕТ НЕВОЗМОЖНО :D чет в другую сторону я пошел тема совсем не подходящая :lol:
а как нибудь по другому есть возможность смотреть медиа на псп через вайфай?


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

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