Сообщение от LaKosta
Ну тогда есть другой способ аналогичный. Вместо исходников использовать PRX Tool. Он тебе, как на тарелочке, выдаст все используемые программой ниды. Затем останется хекс-редактором заменить их на ниды от 6.60.
|
Чтож, решил всё-таки попытаться. Исходя из описания плагина на сайте, он адаптирован для 5.00.
В итоге:
1. Декриптовал FuSa.prx на своей консоли.
2. Выдернул ниды с помощью PRXTools
получил код
Module information
Name: FuSa_SD
Attrib: 1000
Version: 1.50
GP: 0000B640
Exports:
Export 0, Name syslib, Functions 4, Variables 0, flags 80000000
Functions:
0xD632ACDB [0x000001E0] - module_start
0xCEE8593C [0x000001C0] - module_stop
0x2F064FA6 [0x000001A0] - module_reboot_before
0xADF12745 [0x00000180] - syslib_ADF12745
Imports:
Import 0, Name SystemCtrlForKernel, Functions 1, Variables 0, flags 00090000
Functions:
0x159AF5CC [0x000026E8] - SystemCtrlForKernel_159AF5CC
Import 1, Name scePower_driver, Functions 1, Variables 0, flags 00010000
Functions:
0x737486F2 [0x000026F0] - scePower_driver_737486F2
Import 2, Name sceDisplay_driver, Functions 2, Variables 0, flags 00010000
Functions:
0xDEA197D4 [0x000026F8] - sceDisplayGetMode
0x5B5AEFAD [0x00002700] - sceDisplay_driver_5B5AEFAD
Import 3, Name sceCtrl_driver, Functions 1, Variables 0, flags 00010000
Functions:
0x3A622550 [0x00002708] - sceCtrl_driver_3A622550
Import 4, Name LoadCoreForKernel, Functions 1, Variables 0, flags 00010000
Functions:
0xD8779AC6 [0x00002710] - LoadCoreForKernel_D8779AC6
Import 5, Name UtilsForKernel, Functions 1, Variables 0, flags 00090000
Functions:
0x79D1C3FA [0x00002718] - sceKernelDcacheWritebackAll
Import 6, Name InterruptManagerForKernel, Functions 2, Variables 0, flags 00010000
Functions:
0x092968F4 [0x00002720] - sceKernelCpuSuspendIntr
0x5F10D406 [0x00002728] - sceKernelCpuResumeIntr
Import 7, Name ThreadManForKernel, Functions 15, Variables 0, flags 00010000
Functions:
0x9ACE131E [0x00002730] - sceKernelSleepThread
0xD59EAD2F [0x00002738] - sceKernelWakeupThread
0x9944F31F [0x00002740] - sceKernelSuspendThread
0x75156E8F [0x00002748] - sceKernelResumeThread
0x278C0DF5 [0x00002750] - sceKernelWaitThreadEnd
0xCEADEB47 [0x00002758] - sceKernelDelayThread
0x55C20A00 [0x00002760] - sceKernelCreateEventFlag
0x1FB15A32 [0x00002768] - sceKernelSetEventFlag
0x402FCF22 [0x00002770] - sceKernelWaitEventFlag
0x446D8DE6 [0x00002778] - sceKernelCreateThread
0xF475845D [0x00002780] - sceKernelStartThread
0x809CE29B [0x00002788] - sceKernelExitDeleteThread
0x71BC9871 [0x00002790] - sceKernelChangeThreadPriority
0x293B45B8 [0x00002798] - sceKernelGetThreadId
0x94416130 [0x000027A0] - sceKernelGetThreadmanIdList
Import 8, Name SysclibForKernel, Functions 3, Variables 0, flags 00010000
Functions:
0xAB7592FF [0x000027A8] - memcpy
0x10F3BB61 [0x000027B0] - memset
0x7661E728 [0x000027B8] - sprintf
Import 9, Name SysMemForKernel, Functions 4, Variables 0, flags 00010011
Functions:
0x237DBD4F [0x000027C0] - SysMemForKernel_237DBD4F
0xB6D61D02 [0x000027C8] - SysMemForKernel_B6D61D02
0x9D9A5BA1 [0x000027D0] - SysMemForKernel_9D9A5BA1
0x3FC9AE6A [0x000027D8] - SysMemForKernel_3FC9AE6A
Done
3. Как по инструкции "Удаляем все лишние строки со статическими функциями, т.е. у которых нет в названии функции суффикса с 4-значным НИДом". Итого остались:
0xADF12745 [0x00000180] - syslib_ADF12745
0x159AF5CC [0x000026E8] - SystemCtrlForKernel_159AF5CC
0x737486F2 [0x000026F0] - scePower_driver_737486F2
0x5B5AEFAD [0x00002700] - sceDisplay_driver_5B5AEFAD
0x3A622550 [0x00002708] - sceCtrl_driver_3A622550
0xD8779AC6 [0x00002710] - LoadCoreForKernel_D8779AC6
0x237DBD4F [0x000027C0] - SysMemForKernel_237DBD4F
0xB6D61D02 [0x000027C8] - SysMemForKernel_B6D61D02
0x9D9A5BA1 [0x000027D0] - SysMemForKernel_9D9A5BA1
0x3FC9AE6A [0x000027D8] - SysMemForKernel_3FC9AE6A
4. Начал сопоставлять ниды с libdoc'ами 5.00 и обнаружил, что начиная 5.00 по 6.60 все до единого совпадают. Быть может я не правильно дизасил эти прошивки? Скачивал их с этого сайта и подсовывал батнику "24. DISASM2HTML", который выдавал файл "24_DISASM_XDRSMW". В нем и смотрел.
Предполагаю, что не сделал описанное в
этой теме и дизас у меня вышел - непонятно что...
Направьте на путь истинный, плиз!