Three new nids (two from ModuleManager and 1 from LoadCore)

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Three new nids (two from ModuleManager and 1 from LoadCore)

Post by moonlight »

The names of the 3 functions were in plain text in the 1.50 modulemgr.prx.

All of them are only available for 1.50 and greater.

The two from ModuleMgr, available for both, user and kernel mode:

0xF0A26395

Code: Select all

/**
 * Gets the UID of the module calling the function
 *
 * @returns The UID of the module calling the function on success, otherwise < 0
*/
SceUID  sceKernelGetModuleId&#40;void&#41;;
0xD8B73127

Code: Select all

/**
 * Gets the UID of a module from an address.
 *
 * @param addr - Address somewhere within the module.
 *
 * @returns The UID of the module on success, otherwise < 0
 */
SceUID	sceKernelGetModuleIdByAddress&#40;unsigned int addr&#41;;
And the one from LoadCore, available only for kernel mode:

0x929B5C69 - sceKernelGetModuleListWithAlloc
I have not looked at this one, but its not very difficult to guess what it does.
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

A bit more of hunt in LoadCoreForKernel

0x5248a98f - sceKernelLoadModuleBootLoadCore (2.50 and greater i guess)
0x52a86c21 - sceKernelGetModuleFromUID (1.50 and greater)
0x05d915db - sceKernelGetModuleIdListForKernel (1.50 and greater)
User avatar
groepaz
Posts: 305
Joined: Thu Sep 01, 2005 7:44 am
Contact:

Post by groepaz »

interisting....could be useful for pspinside (if i ever get my lazy ass up again and work on it :=P)
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

Today i have nothing more to do, so a lot more of nids. I have finally found the name of the function that executes homebrew.

LoadCoreForKernel:

0x31df42bf - sceKernelLoadExecVSHMs1
This function is the one that the vsh uses to execute the update from the memory stick.

0x28d0d249 - sceKernelLoadExecVSHMs2
This function is the one that the vsh uses to execute the games/homebrew from the memory stick.

0x70901231 - sceKernelLoadExecVSHMs3
This function... seems that is never called :S

All of them share the same structure:

A first parameter indicating the path of the program to execute, and a second parameter, that is a pointer to a SceKernelLoadExecVSHParam struct, which is like a standar SceKernelLoadExecParam with some extra fields that specifiy the parameters for vshmain at the return.

And now from sceVshBridge, the equivalents to these functions and some others:

0x04aec74c - vshKernelLoadExecVSHDiscDebug
0xb7c46dca - vshKernelLoadExecVSHDiscUpdater
0x68be3316 - vshKernelLoadExecBufferVSHUsbWlanDebug
0xf35bfb7d - vshKernelLoadExecVSHMs1
0x97fb006f - vshKernelLoadExecVSHMs2
0x029ef6c9 - vshKernelLoadExecVSHMs3

As a curiosity, the name of the equivalent of sceKernelLoadExecVSHDisc (sceVshBridge_F4873F4D) is not called vshKernelLoadExecVSHDisc :S It still has no name.

All of those functions are available in all firmwares (at least from 1.00-2.50), except vshKernelLoadExecVSHDiscDebug which is not available in 1.00

Well, if someone with access to the svn want to update the libdoc and the sdk. The nids are not safe in my computer ;)
groepaz wrote:interisting....could be useful for pspinside (if i ever get my lazy ass up again and work on it :=P)
I love that program. The only problem it has is that a lot of elf's cannot be loaded... Probably because they are statically loaded to some address where pspinside is also loaded. Maybe a fix for this could be to put the code in a kernel prx, with a simple bootloaderelf that load the prx, and is then unloaded, like psplink does.
User avatar
dot_blank
Posts: 498
Joined: Wed Sep 28, 2005 8:47 am
Location: Brasil

Post by dot_blank »

very good stuff moony :)
sceKernelLoadExecVSHMs3 might this be for game sharing
10011011 00101010 11010111 10001001 10111010
User avatar
groepaz
Posts: 305
Joined: Thu Sep 01, 2005 7:44 am
Contact:

Post by groepaz »

I love that program. The only problem it has is that a lot of elf's cannot be loaded... Probably because they are statically loaded to some address where pspinside is also loaded. Maybe a fix for this could be to put the code in a kernel prx, with a simple bootloaderelf that load the prx, and is then unloaded, like psplink does.
yep, thats on my (rather long) todo list :=P
Post Reply