PSP & desarrollo ASM, comienzo imposible!?

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por Darthvader38 »

Bueno que hayas decidido aparecer, me acabo de despertar ahora
y para mi sorpresa con prxtool a mano! gracias a ti! :oki:
despues de un bocado reviso en detalles :geek: lo que dices.

-- Doble Post --

Estoy de vuelta.

Codestation escribio:
"la forma mas sencilla es llamar a la función sctrlHENFindFunction(char* szMod, char* szLib,

u32 nid) y te devolverá esa dirección que buscas"

=========================================================================================
Voy por partes (q soy nuevo en esto), "llamar" <- a la funcion "sctrlHENFindFunction", es
usar un "Jal" a ella no?
Digo, desde mi pacth.
Si es asi, como voy a saber a donde tengo que ir con el Jal?!(mismo dilema que sceIoOpen :ko: ).
O es acaso que "sctrlHENFindFunction" siempre esta en una direccion fija en el CFW?

De esto no tengo info y adivino no soy.
De todas maneras voy a investigar por mis medios...imagino
que buscando un poco con el prxtool y compilando-desensamblando algunos
homebrews mios dare con la respuesta...al tiempo.

=====================================
Ah! otra cosa, para ir "adelantando".

1-Para pasarle los parametros a las funciones con las que dare el Jal, se utilizan el $a0-3
como en el curso que me lei?

2-Los mnemonics de PSP son los mismos del curso que M0skit0 aconsejo? Es decir:
$a0-3(argumentos) , $s0-7 (Saved registers) ,$t0-$t7(Temporary) , $at(temporal Assembler),
$v0, $v1 (valores de retorno).?

3-En caso de que sea asi, el "orden" de los
parametros debe ser el mismo que el de la funcion en C?

Ej: sctrlHENFindFunction(char* szMod, char* szLib, u32 nid)
->char* szMod siendo el primer parametro, lo introduzco en $a0?


Salu2 Codes!

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por m0skit0 »

No me líeis al chaval por dios! Que le habláis como si fuera un kernel hacker y recién está aprendiendo MIPS :roll:

Darthvader38 escribió:el que deseo incrustar utiliza la funcion sceIoOpen, pero el modulo donde voy a patchear no tiene incluida en su compilacion esa funcion o la llamada a esa funcion (esto tiene otra manera de decirse, creo que es: no tiene el import, stub o algo asi...)

Si lo que estás haciendo es código inyectado bajo OFW, entonces si no está importada esa función (lo correcto sería llamada al sistema, o syscall) no puedes llamarla. El HBL tiene mecanismos para solventar esta situación (estimación de syscalls), pero son relativamente complicados. De todas formas, sceIoOpen tiene que estar importada, no he visto ningún juego que no la importe.

codestation escribió:Generalmente si uno está bajo un HEN/CFW, la forma mas sencilla es llamar a la función sctrlHENFindFunction(char* szMod, char* szLib, u32 nid) y te devolverá esa dirección que buscas.

Si estás bajo CFW no hace falta eso, simplemente compilas tu código (plugin, homebrew...) con sceIoOpen importada y ya está. Querer inyectar código en CFW no tiene tampoco mucho sentido, así que entiendo que lo que él quiere es en OFW ;)

codestation escribió:Estos valores no cambian para funciones que pueden ser llamadas desde el modo usuario pero lamentablemente son diferentes para las funciones en modo kernel en cada revisión de firmware

Correcto, pero creo que él sólo está en modo usuario por ahora, con lo cual esto no es un problema ;)

Darthvader38 escribió:1-Para pasarle los parametros a las funciones con las que dare el Jal, se utilizan el $a0-3
como en el curso que me lei?

Sí, por eso te dije que lo leyeras :mrgreen: Esto es estándar MIPS.

Darthvader38 escribió:2-Los mnemonics de PSP son los mismos del curso que M0skit0 aconsejo? Es decir:
$a0-3(argumentos) , $s0-7 (Saved registers) ,$t0-$t7(Temporary) , $at(temporal Assembler),
$v0, $v1 (valores de retorno).?

Los mnemónicos son los mismos en todos lados. Esto también es estándar MIPS.

Darthvader38 escribió:3-En caso de que sea asi, el "orden" de los
parametros debe ser el mismo que el de la funcion en C?

Sí. En realidad el orden de la función en C es igual al de ensamblador y no al revés ;)
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por Darthvader38 »

M0skit0 escribio:
"Correcto, pero creo que él sólo está en modo usuario por ahora, con lo cual esto no es un
problema"
->Estoy haciendo mis pruebas, en un modulo de una "backup".
===========
M0skit0 escribio:
"Querer inyectar código en CFW no tiene tampoco mucho sentido, así que entiendo que lo que él
quiere es en OFW"
->Quiero añadir algunas mejoras a un plugin del que no tengo el src, para que haga un par de
cosas adicionales, eso para mi es un motivo, asi que me hara falta usar sctrlHENFindFunction
al parecer.
===========
+ y + cuestiones:
Estoy usando el prxtool para el desensamblaje de prx's (thank Codes).
El asunto es que despues no se como ensamblarlo de nuevo.
Busque en el tuto de Alek ([Manual] Programación en C para PSP)
donde hace referencia a esta herramienta y a mi entender no
cita como volver a ensamblarlo para probar las modificaciones, alguien
sabe algun comando para esto?

Finalmente, sctrlHENFindFunction es usuario o kernel? :?:
Y aun no me queda claro como obtener su direccion... :oops: profe o Codes?
Salu2 gente! :)

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por m0skit0 »

Darthvader38 escribió:->Estoy haciendo mis pruebas, en un modulo de una "backup".

Esto no aclara si es modo usuario/kernel. Puede ser cualquiera.

Darthvader38 escribió:->Quiero añadir algunas mejoras a un plugin del que no tengo el src, para que haga un par de
cosas adicionales, eso para mi es un motivo, asi que me hara falta usar sctrlHENFindFunction

Consejo: yo que tú me dedicaría primero a hacer mi propio plugin antes de ponerse a parchear plugins hechos por otros.

Darthvader38 escribió:El asunto es que despues no se como ensamblarlo de nuevo.

Versión corta: no puedes "re-ensamblar" un PRX desensamblado con PRXTool. Versión larga: el coste que supone volver a ensamblar un PRX desensamblado es muchísimo más alto que modificar el PRX en binario.

Darthvader38 escribió:alguien sabe algun comando para esto?

No existe tal comando como he explicado más arriba.

Darthvader38 escribió:sctrlHENFindFunction es usuario o kernel?

Kernel, pero es una syscall que yo sepa.

Darthvader38 escribió:Y aun no me queda claro como obtener su direccion...

Es una función de CFW. Impórtala en tu código y re-enlaza.
Imagen

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por m0skit0 »

Yo creo que estás yendo más rápido de lo que debes. Está bien que ya sepas MIPS más o menos, pero eso no quiere decir que sepas cómo funciona una PSP más allá de MIPS, es decir, su arquitectura de software, o para entendernos, el lío que ha montado Sony con su firmware. Creo que primero deberías mirarte esto porque creo que intentas dar palos de ciego en este ámbito. Vamos, que te noto verde en cuanto al firmware y cómo funciona, o qué es un PRX, su estructura y cómo funciona.
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por Darthvader38 »

Bueno, a lo mismo de siempre:

Me lei el curso entero (a cada rato le hecho otra ojeada),
AHORA QUE SIGUE?.
Estudiar la estructura de los prx?
Me lo explicas tu? O, talvez tienes otro curso bajo la manga?
O mejor, que te parece, si en tu disposicion está,
estudiar un ejemplo bien sencillo desensamblandolo para ver las partes
que lo componen? :geek:

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por m0skit0 »

Creo que los PRX sería lo siguiente. Si quieres hazte un "Hello world" con el PSPSDK y vemos el PRX resultante. Sube el PRX original y el desensamblado.
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por Darthvader38 »

Perfecto! :chapao:
Tu si tienes paciencia! :lol:
Dame un time q tengo algo de vida propia, nada + tenga el chance
me dedico al asunto (hoy)! :D

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por m0skit0 »

Para algo que puedo hacer en el foro... :lol:

Por cierto, que te quería comentar y se me olvidó: todo lo que has leído en el curso te vale salvo las cosas específicas del simulador (como por ejemplo las syscalls).
Imagen

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Re: PSP & desarrollo ASM, comienzo imposible!?

Mensaje por Darthvader38 »

En un momento lo cuelgo... :geek:

-- Doble Post --

Lo pondre dentro de un rar, espero q no sea problema.
(la extencion asm no me permite subirla, asi que el thread.rar renombralo),
los otros si son "rar" reales.
Perdona el enredo, nunca he subido nada a este sitio. :|
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Responder