› Foros › PlayStation 3 › Modchips y Softmods
jotax escribió:Minami escribió:Hola buenas, el USB Adress ese que estais buscando podria ser uno de estos??
0xbc000050 usb.prx
0xbd000004 usb.prx
Si no es eso perdon, ya que intento ayudar
pero ese es el 1º de estos-------------------------------------------------------------
-------------------------------------------------------------
- usb.prx
-------------------------------------------------------------
-------------------------------------------------------------
0xbc000050
0xbd000004
0xbd800000
0xbd800004
0xbd800008
0xbd80000c
0xbd800020
0xbd800200
0xbd800204
0xbd80020c
0xbd800210
0xbd800214
0xbd800220
0xbd800400
0xbd800404
0xbd800408
0xbd80040c
0xbd800410
0xbd800414
0xbd800418
0xbd80041c
0xbd800504
Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)
by_kas_ escribió:Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)
100% Agreed, good idea
Si alguien no lo entiende, yo por si acaso lo traduzco (no quiero hacerme el listillo xd) lo que dice Kenshindono es hacer un sniffing en la conexion entre una psp y algun periferico de la psp, GoCam, GPS, etc...
Creo que esta es una buena idea, aunque no se si seria posible ejecutarla, aunque no parece muy descabellada xd
by_kas_ escribió:Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)
100% Agreed, good idea
Si alguien no lo entiende, yo por si acaso lo traduzco (no quiero hacerme el listillo xd) lo que dice Kenshindono es hacer un sniffing en la conexion entre una psp y algun periferico de la psp, GoCam, GPS, etc...
Creo que esta es una buena idea, aunque no se si seria posible ejecutarla, aunque no parece muy descabellada xd
sagamaru escribió:Hay un plugin que hace de mando la psp fusa creo que es el homebreew podriais mirar en ese codigo lo que manda para que lo detecte igual en ese codigo encontrais lo que falta :S nose si servira esta info
toni_v escribió:sagamaru escribió:Hay un plugin que hace de mando la psp fusa creo que es el homebreew podriais mirar en ese codigo lo que manda para que lo detecte igual en ese codigo encontrais lo que falta :S nose si servira esta info
eso no es por infrarojos?, aqui se habla de usb
MicroWorks escribió:Yo recuerdo que había un homebrew con el que podías cargar juegos desde el pc en la psp vía wifi y usb... imagino que éste podría servir...
Un saludo.
Minami escribió:MicroWorks escribió:Yo recuerdo que había un homebrew con el que podías cargar juegos desde el pc en la psp vía wifi y usb... imagino que éste podría servir...
Un saludo.
Si lo que dices es esto USBhostFS tambien podria serbir, ahora estoy registrando las ID desde es esnifer haber si hay suerte y doy con la del puerto USB de PSP
nullEX escribió:Me gustaría añadir que además hay que utilizar el driver USB bus open edition (en el post de wuepe) Y modificarlo para evitar que procese automáticamente las peticiones GetDescriptor para los devices (esto es fácil ) Esto es porque una vez se cambie el UDADDR, si no se modifica ese driver y se utiliza, las peticiones de descriptores y de configuraciones de cada uno de los devices de los 6 puertos, las gestionara el driver pspusb_bus.
Por lo demás, ya os podéis hacer a la idea de como esta el tema
un saludo y gracias wuepe por todo tu esfuerzo!!!
Pd: wuepe es el que mas ha trabajado en esto y lleva encima muchas muchas horas, que lo sepáis
/* Subroutine at 0x356C */
static
int process_standard_request (struct DeviceRequest *req)
{
switch (req->bRequest) {
case 6: /* GET_DESCRIPTOR */
return process_get_descriptor ();
case 0: /* GET_STATUS */
case 1: /* CLEAR_FEATURE */
case 3: /* SET_FEATURE */
case 5: /* SET_ADDRESS */
case 8: /* GET_CONFIGURATION */
case 9: /* SET_CONFIGURATION */
case 10: /* GET_INTERFACE */
case 11: /* SET_INTERFACE */
case 12: /* SYNCH_FRAME */
Kprintf ("usbbd ERROR : standard request 0x%x is handled by hardware only\n", req->bRequest);
default:
process_request_default ();
return -1;
}
return 0;
}
Vrsquid escribió:nullEX escribió:Me gustaría añadir que además hay que utilizar el driver USB bus open edition (en el post de wuepe) Y modificarlo para evitar que procese automáticamente las peticiones GetDescriptor para los devices (esto es fácil ) Esto es porque una vez se cambie el UDADDR, si no se modifica ese driver y se utiliza, las peticiones de descriptores y de configuraciones de cada uno de los devices de los 6 puertos, las gestionara el driver pspusb_bus.
Por lo demás, ya os podéis hacer a la idea de como esta el tema
un saludo y gracias wuepe por todo tu esfuerzo!!!
Pd: wuepe es el que mas ha trabajado en esto y lleva encima muchas muchas horas, que lo sepáis
Yo no quiero ser aguafiestas, solo he visto un poco el codigo por encima del openusbpsp ese y mira lo que he encontrado en el usbconfig.c/* Subroutine at 0x356C */
static
int process_standard_request (struct DeviceRequest *req)
{
switch (req->bRequest) {
case 6: /* GET_DESCRIPTOR */
return process_get_descriptor ();
case 0: /* GET_STATUS */
case 1: /* CLEAR_FEATURE */
case 3: /* SET_FEATURE */
case 5: /* SET_ADDRESS */
case 8: /* GET_CONFIGURATION */
case 9: /* SET_CONFIGURATION */
case 10: /* GET_INTERFACE */
case 11: /* SET_INTERFACE */
case 12: /* SYNCH_FRAME */
Kprintf ("usbbd ERROR : standard request 0x%x is handled by hardware only\n", req->bRequest);
default:
process_request_default ();
return -1;
}
return 0;
}
Los registros usb que pusisteis antes lo mas seguro es que solo sean accesibles desde el kernel asi que si necesitais toquetearlos en el eboot tendreis que haceros unas funciones peek poke
...
aSceusbdevdesc: "SceUsbDevDesc"<0> # DATA XREF: sub_C70+140o
aSceusbconfig: "SceUsbConfig"<0> # DATA XREF: sub_1024+18Co
aSceusbgetdescd: "SceUsbGetDescData"<0> # DATA XREF: sub_18A4+54o
...
void sub_015F4 (int arg1)
{
...
var12 = sceIdStorageLookup (0x00000041, 0x00000000, var8, 0x00000004);
...
Vrsquid escribió:Los registros usb que pusisteis antes lo mas seguro es que solo sean accesibles desde el kernel asi que si necesitais toquetearlos en el eboot tendreis que haceros unas funciones peek poke
issue 5 (UDADDR ) reported by madshaun1984 - http://pastebin.com/kqhvhaeh Use #define SCE_USB_PID_PSPCM 0x01CB to change the UDADDR
IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...
ViTi95 escribió:eso que acaban de poner no es el UDADDR, sino el productID de la psp fat:IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...
http://0okm.blogspot.com/2006_05_01_archive.html
lo podeis comprobar con el lsusb -v
Port Five
The dongle plugs the fake Jig into Port Five right after Port Four has done its job. It uses the same PID/VID that the original Sony Jig uses (0x054C/0x02EB) and probably the same configuration with the same end points.
It is suspected that because the Jig is a known device that the PS3 was waiting for, it's device and configuration descriptors will not be malloced into the heap.
The PS3 sends a 64 byte challenge to the fake Jig to authenticate it, and the dongle replies with 64 bytes of static data. The PS3 will malloc space for this response, and because the boundary tags have been modified by Port Four, malloc will return a pointer to 24 bytes before a function that has something to do with free and the 64 bytes of data will be written over top of the function.
At the point, no code has been patched yet, so the Jig's static response will fail to authenticate the jig.
ardil.salas escribió:Una pregunta, tengo un chip Infectus 2 y su programador USB que es Actel se le podria instalar el PSGroove.
Un Saludo.
wuepe escribió:Yo diría que esta a punto de terminarse, haber si se consigue cambiar el port, y este pregunte por su DESCRIPTOR, lo siguiente ya parece que funciona.
Pero no me llega a cambiar de port, para que me mande el descriptor, para cambiar el port, no es necesario cambiar el driver usb address, eso ya viene luego, una vez que llegue su decriptor, ya se podrá cambiar a ese address.
Puesto como ya esta en el address original, falta primero cambiar de port, para luego hacer lo siguiente.
El comando en psgroove es:
Endpoint_Write_Byte
Que corresponderia a este define:
#define UEDATX _SFR_MEM8(0xF1);
wuepe escribió:Yo diría que esta a punto de terminarse, haber si se consigue cambiar el port, y este pregunte por su DESCRIPTOR, lo siguiente ya parece que funciona.
Pero no me llega a cambiar de port, para que me mande el descriptor, para cambiar el port, no es necesario cambiar el driver usb address, eso ya viene luego, una vez que llegue su decriptor, ya se podrá cambiar a ese address.
Puesto como ya esta en el address original, falta primero cambiar de port, para luego hacer lo siguiente.
El comando en psgroove es:
Endpoint_Write_Byte
Que corresponderia a este define:
#define UEDATX _SFR_MEM8(0xF1);
Minami escribió:ViTi95 escribió:eso que acaban de poner no es el UDADDR, sino el productID de la psp fat:IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...
http://0okm.blogspot.com/2006_05_01_archive.html
lo podeis comprobar con el lsusb -v
Segun tengo entendido el IdVendedor es parte de la MAC, con lo cual esa mac llebaria esos digitos a la inversa, osea 05 4C, segun tegun tengo entendido repito.
Port Six
The device that gets plugged into Port Six has nothing to do with the exploit. It has a vid/pid of 0xAAAA/0xDEC0 (on the PPC, which is big endian, the pid is 0xC0DE).
The payload sends it a single byte (0xAA) control transfer so that the dongle will know that the exploit was successful so it can turn the green LED on to signal the user.
A function in the original PSJailbreak Payload will make sure that this device stays plugged in. If it is ever unplugged then it will call LV1_Panic and your PS3 will shutdown. PSGroove has removed this 'feature'.
Vrsquid escribió:No hace falta cambiar el VID/PID en la nand porque es el driver usb el que lo lee. Con el open puedes mandar el que te de la gana sin tocar eso tan peligroso.
#define USB_PORT_0200 0xbd800200
int switch_to_port(int port)
{
int intr;
intr = sceKernelCpuSuspendIntr ();
unsigned int address = (USB_PORT_0200 + 32 * port);
_sw (_lw (address) | 0x80, address);
sceKernelCpuResumeIntr (intr);
}
wuepe escribió:Bueno, tengo el set_address_driver. lo llamo switch_to_port#define USB_PORT_0200 0xbd800200
int switch_to_port(int port)
{
int intr;
intr = sceKernelCpuSuspendIntr ();
unsigned int address = (USB_PORT_0200 + 32 * port);
_sw (_lw (address) | 0x80, address);
sceKernelCpuResumeIntr (intr);
}
Con esto, consigo cambiar de address, y ahora a enviar los descriptores, no se me queda esperando 5sg a que llegue, lo coge bien.
PERO aun me falta el connect_port para que vaya pidiendo los descriptores la ps3 cuando lo vaya necesitando.
De todas formas, saltándome ese paso por si no hace falta esperar a que la ps3 me lo pida, puede que tenga algún error el código, ya he intentado mandar todo, por mi parte, haciendo los tiempos de espera necesarios, llego al final, al DONE. Pero nada, en la ps3 no arranca con la función extra añadida.
Así que hay que mandar los descriptores cuando la ps3 lo pida, no cuando se quiera.
Con ese switch_to_port de arriba, y faltando el connect_port, para que empiece a pedir lo que necesita, ya estaría listo.
Dejo esto por aquí, y en breve subo el intento de mandar todo, pero claro, faltando el connect_port, que no lo doy sacado >.<
Se supone que hay que mandarlo como comente hay atras, por enpoint_write, o por fifo... pero el sdk no trae dicha función, solo trae send_request, pero no estoy respondiendo a un dato que me pide, soy yo el que quiere conectar un puerto...
wuepe escribió:Bueno, tengo el set_address_driver. lo llamo switch_to_port#define USB_PORT_0200 0xbd800200
int switch_to_port(int port)
{
int intr;
intr = sceKernelCpuSuspendIntr ();
unsigned int address = (USB_PORT_0200 + 32 * port);
_sw (_lw (address) | 0x80, address);
sceKernelCpuResumeIntr (intr);
}
Con esto, consigo cambiar de address, y ahora a enviar los descriptores, no se me queda esperando 5sg a que llegue, lo coge bien.
PERO aun me falta el connect_port para que vaya pidiendo los descriptores la ps3 cuando lo vaya necesitando.
De todas formas, saltándome ese paso por si no hace falta esperar a que la ps3 me lo pida, puede que tenga algún error el código, ya he intentado mandar todo, por mi parte, haciendo los tiempos de espera necesarios, llego al final, al DONE. Pero nada, en la ps3 no arranca con la función extra añadida.
Así que hay que mandar los descriptores cuando la ps3 lo pida, no cuando se quiera.
Con ese switch_to_port de arriba, y faltando el connect_port, para que empiece a pedir lo que necesita, ya estaría listo.
Dejo esto por aquí, y en breve subo el intento de mandar todo, pero claro, faltando el connect_port, que no lo doy sacado >.<
Se supone que hay que mandarlo como comente hay atras, por enpoint_write, o por fifo... pero el sdk no trae dicha función, solo trae send_request, pero no estoy respondiendo a un dato que me pide, soy yo el que quiere conectar un puerto...
-Zaka- escribió:Hype a tope xD
Buen trabajo tio! A ver si hay suerte y consigues lo que te falta!
wuepe escribió:Fuentes actualizadas, he subido la original con el cambio de switch_to_port para continuar desde hay.
Y he subido una fuente de test, que manda todo los descriptores paso a paso, esperando sus tiempos, pero como no se hace aun la desconexión y conexión de puertos, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.
http://code.google.com/p/eol-psgroove/
Editado:
Test no funcional, funciona envio masivo de descritores:
Fuente: http://www.megaupload.com/?d=52J338D9
Compilado (Solo driver): http://www.megaupload.com/?d=5E0S9ACC
Por otra parte...
Fuente Driver Rev 32: http://www.megaupload.com/?d=HJOW3BS7
Esta rev 32, lleva el switch_to_port ya añadido, se ha quitado los descriptores del High-Speed que no se usan, se ha cambiado la definicion de los endpoint para que sean uno de Entrada y Dos de Salida
CaptainCPS-X escribió:wuepe escribió:Fuentes actualizadas, he subido la original con el cambio de switch_to_port para continuar desde hay.
Y he subido una fuente de test, que manda todo los descriptores paso a paso, esperando sus tiempos, pero como no se hace aun la desconexión y conexión de puertos, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.
http://code.google.com/p/eol-psgroove/
Editado:
Test no funcional, funciona envio masivo de descritores:
Fuente: http://www.megaupload.com/?d=52J338D9
Compilado (Solo driver): http://www.megaupload.com/?d=5E0S9ACC
Por otra parte...
Fuente Driver Rev 32: http://www.megaupload.com/?d=HJOW3BS7
Esta rev 32, lleva el switch_to_port ya añadido, se ha quitado los descriptores del High-Speed que no se usan, se ha cambiado la definicion de los endpoint para que sean uno de Entrada y Dos de Salida
Acabo de realizar pruebas con mi PS3 (3.41), y por supuesto no funciona, pero me queda una duda, ¿se supone que si enciendo el PS3 y corro el PSPGroove me detecte algun dispositivo en el proceso?, hago la pregunta como parte de test pues , en mi caso el PS3 no me da ningun aviso de que se ha conectado algun dispositivo.
No se si es normal ya que el hack funciona en cuestion de un par de segundos.
Saludos.
xmoneyxfcj escribió:Probado.... Pero nada.conocéis los pasos a seguir o estamos estancados a la espera de otra persona q sepa seguir?
xmoneyxfcj escribió:Probado.... Pero nada.conocéis los pasos a seguir o estamos estancados a la espera de otra persona q sepa seguir?