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-ы? что то не могу определится


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

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