Traducción rápida ...
As you may know if you’ve been following my progress, last week I took a short break from Wi-Fi Sync to look at the PS3 and how it works behind the scenes. The PS3 homebrew scene is currently at a point where you can install userland packages, such as FTPDs and SNES emulators, but you still don’t have any access to the hypervisor or GameOS kernel. It’s still very much a closed system.
Como sabrás si has estado siguiendo mis avances, la semana pasada me tomé un respiro del tema de Wi-Fi Sync para echar un vistazo a la PS3 y como funciona por dentro. La ejecución de aplicaciones caseras está actualmente en un punto en el que puedes instalar paquetes a nivel de usuario, como servidores de FTP y emuladores de SNES, pero los usuarios no tienen todavía acceso al hipervisor o al núcleo del GameOS. Es todavía un sistema muy cerrado
As an iPhone developer with an app on Cydia, I can see great potential within the PS3. It’s crying out for a decent package manager, but you need OS-level access to do that effectively. Unlocking the PS3 in this way has other benefits too; the system can effectively be modified in any way you wish.
Siendo un desarrollador de iPhone con una aplicación en Cydia, puedo ver un gran potencial en la PS3. Esta pidiendo a gritos un gestor de paquetes decente, pero necesitas acceso a nivel de sistema operativo para hacerlo bien. Desbloquear la PS3 de esta manera tiene otros beneficios; el sistema podrá ser efectivamente modificada de cualquier manera que se quiera.
So today I’m releasing three tools which open the PS3’s hypervisor (lv1) and GameOS (lv2) to full read/write access from packaged userland applications. These tools can be used to create and test lv1/lv2 patches in RAM, which negates the risk of bricking your PS3 by flashing it with an incorrectly patched lv1 or lv2 binary. You can also use the tools to create a patched lv1 or lv2 binary, if you wish, although I suggest thoroughly testing your patches in-memory first.
Así que hoy publico 3 herramientas que abren y dan acceso al hipervisor de PS3 (lv1) y al GameOS (lv2) para permitir acceso completo de lectura/escritura desde las aplicaciones en modo usuario. Estas herramientas pueden ser usadas para crear y probar parches lv1/lv2 en RAM, lo que evita el riesgo de convertir tu PS3 en un ladrillo si grabas la flash con un binario lv1 o lv2 incorrectamente parcheado. Además puedes , si quieres, usar las herramientas para crear un binario lv1 o lv2 parcheado, aunque te sugiero encarecidamente que pruebas los parches en memoria primero.
I will a few things clear before continuing: I do not condone piracy and these tools DO NOT enable copied games to run on the PS3. Again: these tools will not allow backup managers to suddenly start working on firmware 3.55. The tools are packaged in source code form and do not include any Sony code or other Sony assets such as encryption keys. If you’re not a developer, these tools will be useless to you, so please do not try to use them. They are made available with no implied warranty of fitness for a particular purpose.
Three tools are being made available today:
Quiero dejar las cosas claras antes de continuar: Yo no estoy de acuerdo con la pirateria y estas herramientas NO permiten ejecutar copias en la PS3. Insisto: estas herramientas no van a permitir que los gestores de copias comiencen de repente a funcionar en el firmware 3.55. Si no eres un desarrollador, estas herramientas no te serán de utilidad, así que , por favor, no intentes usarlas. Estan realizadas sin ninguna garantía de que realizan un propósito particular.
3 herramientas han sido publicadas hoy:
resign_self.py. This allows you to automatically replace any segment within a self and re-sign the self so the signatures and hashes are all valid again. Similar to makeself, but it is more suited towards patching lv1 and lv2 (and has been tested for this purpose).
resign_self.py. Permite reemplazar cualquier segmento de un elf y refirmar el self de modo que las firmas y sumas de verificación son validas de nuevo. Es similar a makeself, pero se ajusta más a parechar lv1 y lv2 (y han sido probadas para este propósito)
insert_lv1_lv2.py. This is just a convenience script I made to take a modified, re-signed lv1.self and lv2_kernel.self, and automatically create a PUP which is identical to an original PUP except for those two files.
insert_lv1_lv2.py. Es un script que he realizado para tratar un lv1.self y un lv2_kernel.self modificados y refirmados, y automaticamente crear un PUP que es idéntico al original PUP excepto por estos 2 ficheros.
lv1dumper. This is an application which runs on the PS3 that you can compile and package using PSL1GHT and geohot’s tools. After running it, lv1 will be mapped at 0x8000000014000000 with read/write access, and you will be able to poke lv2 without the system shutting down. It disables the new lv2 memory hashing feature Sony added to 3.55 (probably to stop future USB jailbreaks).
lv1dumper. Es una aplicación que se ejecuta en la PS3 y que puedes compilar y empaquetar usando PSL1GHT y las herramientas de geohot.
Después de ejecutarla, lv1 estará mapeado en 0x8000000014000000 con acceso de lectura y escritura, y podrás escribir en lv2 sin apagar el sistema. Desactiva la nueva suma de verificación de memoria lv2 que Sony ha añadido al firmware 3.55 (probablemente para parar futuros USB jailbreaks)
lv1dumper requires that some patches to lv1 and lv2 are already in place. I’ll describe how to add these patches. They have been tested but I cannot guarantee that they won’t brick your PS3. Do not do this unless you’re comfortable with that.
lv1dumper requiere que algunos parches en lv1 y lv2 estan activados. Voy a describir como añadir esos parches. Están probados pero no puedo garantizar que no conviertan tu PS3 en un ladrillo inutilizable. No hagas esto a menos que te sientas cómodo con ello.
Firstly, you need to extract the decrypted code segments from lv1.self and lv2_kernel.self (just use unself and copy them directly out of the ELF), and make the following changes to to them, assuming you’re using 3.55:
Primero, necesitas extraer los segmento de código descifrados de lv1.self y lv2_kernel.self (simplemente usa unself y copialos directamente del ELF), y haz los siguiente cambios , asumiendo que estas en 3.55:
lv1_undocumented_function_114 in lv1 must be patched so that it can be used to map any area of real memory. graf_chokolo found this trick months ago, but it still applies here. Patch the byte at D5A47 from 00 to 01 (2D5A47 if you’re looking for it in IDA).
You then need to add peek and poke to lv2. Patch 1933C to E8 63 00 00 60 00 00 00 and 19348 to F8 83 00 00 60 00 00 00.
You can then use resign_self.py to re-insert your patched code segment back into the self. You’ll firstly need to change a few bytes in some useless strings because of the way zlib deflate works; the script will tell you what to do. I found that changing strings was the easiest way to do this, it just takes a bit of trial and error.
lv1_undocumented_function_114 en lv1 debe ser parcheado de modo que pueda ser usado para mapear cualquier area de memoria. graf_chokolo encontró este truco hace meses, pero todavía se puede aplicar aqui. Parchea el byte en la posición D5A47 de 00 a 01 (2D5A47 si lo estas mirando en IDA).
Entonces necesitas añadir peek y poke a lv2. Parchea 1933C a E8 63 00 00 60 00 00 00 y 19348 to F8 83 00 00 60 00 00 00.
Entonces puedes usar resign_self.py para reinsertar tu segmento de código parcheado en el self. Primero tienes que cambiar unos cuanto bytes en alguna cadena de texto sin uso debido a la manera en la que funciona el algoritmo deflate de zlib; el script te dirá que tienes que hacer. Me he dado cuenta que cambiar cadenas de texto es la manera más fácil de hacerlo, es solo cuestión de prueba y error.
Finally, use insert_lv1_lv2.py to create your modified PUP. You’ll need to update to the PUP, then install geohot’s jailbreak PUP over the top of it. If you’ve done everything right, lv1dumper should just exit after you run it and you’ll have r/w access to lv1 and lv2 (peek and poke). The lv1_peek, lv1_poke, lv2_peek and lv2_poke functions in lv1dumper show how to use that access.
Finalmente, usa insert_lv1_lv2.py para crear tu PUP modificado. Necesitas actualizar con el PUP, y luego instalar el PUP de geohot encima. Si lo has hecho todo correctamente, lv1dumper debe salir conforme lo ejecutas y tendrás acceso de lectura/escritura a lv1 y a lv2 (peek y poke). Las funciones lv1_peel,lv1_poke,lv2_peek y lv2_poke en lv1dumper te muestras como usar estos accesos
I’m hoping that some interesting and innovative stuff can come out of this, and maybe we can start to see ‘unofficial’ apps enjoying the same success on the PS3 that they do on the iPhone.
Espero que salga interesante y novedose de esto, y puede que empecemos a ver aplicaciones no oficiales disfrutando del mismo éxito en la PS3 del que tienen en el iPhone.
Fuente:http://flukes1.com/post/2779013293/ps3
Descargar de los tools:http://www.multiupload.com/J7V828R8H9[/quote]