¿Que falló en Playstation 3?

70
Marco Antonio Gómez y Federico Peinado Máster en Desarrollo de Videojuegos Universidad Complutense de Madrid www.videojuegos-ucm.es Qué falló en Playstation 3 Piratería, seguridad informática y el mercado de las videoconsola www.gueim.or

description

Charla sobre piratería, seguridad informática y el mercado de las videoconsolas. Marco Antonio Gómez y Federico Peinado, profesores del Máster en Desarrollo de Videojuegos de la UCM hablan sobre lo ocurrido con Sony Playstation 3 en materia de violación de su seguridad.

Transcript of ¿Que falló en Playstation 3?

Page 1: ¿Que falló en Playstation 3?

Marco Antonio Gómezy Federico Peinado

Máster en Desarrollo de Videojuegos Universidad Complutense de Madrid

www.videojuegos-ucm.es

¿Qué falló en Playstation 3?Piratería, seguridad informática y el mercado de las videoconsolas

www.gueim.org

Page 2: ¿Que falló en Playstation 3?
Page 3: ¿Que falló en Playstation 3?

El apagón de PlayStation Network

• Suspensión total del servicio en el mundo20 de abril de 2011 – Actualidad– Más de 77 millones de usuarios– Afectando incluso a algunos juegos offline– Pérdidas de cientos de miles o incluso millones

de dólares a empresas (Capcom)

• Suspensión relacionada de plataforma PC 2 de mayo de 2011 – Actualidad – Sony Online Entertainment (MMOGs)– Más de 24 millones de usuarios

(aunque casi sin afectar a tarjetas de crédito)

• Motivo: Intrusiones externas Del 16 al 19 de abril de 2011 – Datos comprometidos de identificación

personal, contraseñas y tarjetas de crédito– Continúa la investigación…

Page 4: ¿Que falló en Playstation 3?

Copiar o no copiar

• Contenidos digitales: ¡llega la copia sin pérdida!

• Sistemas anticopia– Hardware (libros de claves,

cartuchos, “mochilas”, etc.)– Software (errores esperados,

número de copias, SecuROM y otros DRMs, etc.)

• Internet y la Web– Descargas masivas, difusión del

homebrew, etc.– Activación remota, rootkits,

contenido en la nube, etc.

Page 5: ¿Que falló en Playstation 3?

La caída de la PS3

• Lanzamiento (Japón)11 de noviembre de 2006

• Modelo “slim” sin Linux1 de septiembre de 2009

• Exploit de GeoHot usando Linux26 de enero de 2010

• Firmware 3.21: Todos sin Linux28 de marzo de 2010

• PS JailBreak: 1er Cargador USB18 de agosto de 2010

• Epic Fail: Anuncio de carga sin USB y firmado de ejecutables29 de diciembre de 2010

• GeoHot hace pública la clave raíz3 de enero de 2011

• Y la historia continúa…

erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB 9F F4 A3 88 F8 12 48 2B E2 1Briv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B 59 F4 C1 4Dpub: C2 D4 AA F3 19 35 50 19 AF 99 D4 4E 2B 58 CA 29 25 2C 89 12 3D 11 D6 21 8F 40 B1 38 CA B2 9B 71 01 F3 AE B7 2A 97 50 19R: 80 6E 07 8F A1 52 97 90 CE 1A AE 02 BA DD 6F AA A6 AF 74 17n: E1 3A 7E BC 3A CC EB 1C B5 6C C8 60 FC AB DB 6A 04 8C 55 E1K: BA 90 55 91 68 61 B9 77 ED CB ED 92 00 50 92 F6 6C 7A 3D 8DDa: C5 B2 BF A1 A4 13 DD 16 F2 6D 31 C0 F2 ED 47 20 DC FB 06 70

Page 6: ¿Que falló en Playstation 3?

La caída de la PS3

• Lanzamiento (Japón)11 de noviembre de 2006

• Modelo “slim” sin Linux1 de septiembre de 2009

• Exploit de GeoHot usando Linux26 de enero de 2010

• Firmware 3.21: Todos sin Linux28 de marzo de 2010

• PS JailBreak: 1er Cargador USB18 de agosto de 2010

• Epic Fail: Anuncio de carga sin USB y firmado de ejecutables29 de diciembre de 2010

• GeoHot hace pública la clave raíz3 de enero de 2011

• Y la historia continúa…

erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB 9F F4 A3 88 F8 12 48 2B E2 1Briv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B 59 F4 C1 4Dpub: C2 D4 AA F3 19 35 50 19 AF 99 D4 4E 2B 58 CA 29 25 2C 89 12 3D 11 D6 21 8F 40 B1 38 CA B2 9B 71 01 F3 AE B7 2A 97 50 19R: 80 6E 07 8F A1 52 97 90 CE 1A AE 02 BA DD 6F AA A6 AF 74 17n: E1 3A 7E BC 3A CC EB 1C B5 6C C8 60 FC AB DB 6A 04 8C 55 E1K: BA 90 55 91 68 61 B9 77 ED CB ED 92 00 50 92 F6 6C 7A 3D 8DDa: C5 B2 BF A1 A4 13 DD 16 F2 6D 31 C0 F2 ED 47 20 DC FB 06 70

La mayoría de las transparencias que siguen son

directamente las de esta charla

Page 7: ¿Que falló en Playstation 3?
Page 8: ¿Que falló en Playstation 3?
Page 9: ¿Que falló en Playstation 3?
Page 10: ¿Que falló en Playstation 3?
Page 11: ¿Que falló en Playstation 3?
Page 12: ¿Que falló en Playstation 3?
Page 13: ¿Que falló en Playstation 3?
Page 14: ¿Que falló en Playstation 3?
Page 15: ¿Que falló en Playstation 3?
Page 16: ¿Que falló en Playstation 3?
Page 17: ¿Que falló en Playstation 3?

La caída de la PS3

• Lanzamiento (Japón)11 de noviembre de 2006

• Modelo “slim” sin Linux1 de septiembre de 2009

• Exploit de GeoHot usando Linux26 de enero de 2010

• Firmware 3.21: Todos sin Linux28 de marzo de 2010

• PS JailBreak: 1er Cargador USB18 de agosto de 2010

• Epic Fail: Anuncio de carga sin USB y firmado de ejecutables29 de diciembre de 2010

• GeoHot hace pública la clave raíz3 de enero de 2011

• Y la historia continúa…

erk: C0 CE FE 84 C2 27 F7 5B D0 7A 7E B8 46 50 9F 93 B2 38 E7 70 DA CB 9F F4 A3 88 F8 12 48 2B E2 1Briv: 47 EE 74 54 E4 77 4C C9 B8 96 0C 7B 59 F4 C1 4Dpub: C2 D4 AA F3 19 35 50 19 AF 99 D4 4E 2B 58 CA 29 25 2C 89 12 3D 11 D6 21 8F 40 B1 38 CA B2 9B 71 01 F3 AE B7 2A 97 50 19R: 80 6E 07 8F A1 52 97 90 CE 1A AE 02 BA DD 6F AA A6 AF 74 17n: E1 3A 7E BC 3A CC EB 1C B5 6C C8 60 FC AB DB 6A 04 8C 55 E1K: BA 90 55 91 68 61 B9 77 ED CB ED 92 00 50 92 F6 6C 7A 3D 8DDa: C5 B2 BF A1 A4 13 DD 16 F2 6D 31 C0 F2 ED 47 20 DC FB 06 70

Page 18: ¿Que falló en Playstation 3?
Page 19: ¿Que falló en Playstation 3?
Page 20: ¿Que falló en Playstation 3?
Page 21: ¿Que falló en Playstation 3?
Page 22: ¿Que falló en Playstation 3?
Page 23: ¿Que falló en Playstation 3?
Page 24: ¿Que falló en Playstation 3?
Page 25: ¿Que falló en Playstation 3?
Page 26: ¿Que falló en Playstation 3?
Page 27: ¿Que falló en Playstation 3?
Page 28: ¿Que falló en Playstation 3?

ARQUITECTURA DE LA PS3

Page 29: ¿Que falló en Playstation 3?
Page 30: ¿Que falló en Playstation 3?
Page 31: ¿Que falló en Playstation 3?
Page 32: ¿Que falló en Playstation 3?

CONOCIMIENTOS TÉCNICOS NECESARIOS

Page 33: ¿Que falló en Playstation 3?

Conocimientos previos

Buffer overflow Protocolo USB• Arbitraje centralizado por

el host• Tamaño de paquetes

variable– Marcado por el host– Solicitado por el dispositivo

• Configuraciones, interfaces y endpoints

Page 34: ¿Que falló en Playstation 3?

PSJailbreak (y clones)

• Buffer overflow en lv2• Consigue ejecutar

código a nivel del kernel

• No W^X en lv2• HV da páginas

ejecutables “con alegría”

Page 35: ¿Que falló en Playstation 3?

PSJailbreak (y clones)

• Resultado:– GameOS comprometido– LV1 no comprometido– SPE para seguridad no

comprometido– Pero tenemos piratería– Rompiendo el 20% del

sistema de seguridad, tenemos el 100% de lo que Sony quería evitar

Page 36: ¿Que falló en Playstation 3?

Fallo de seguridad

• LV1 no se encarga de asegurar a LV2 la integridad del juego

• Con acceso a LV2 podemos quitar la protección

Page 37: ¿Que falló en Playstation 3?

PSJailbreak

• Análisis que sigue usando principalmente PSGroove

• Dos fases– Conseguir acceso al SO– Cambiar su comportamiento

Page 38: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2// Descriptor del dispositivo USB. Es el primero que// se envía.const uint8_t PROGMEM HUB_Device_Descriptor[] = { 0x12, // Longitud del paquete (18 bytes) 0x01, // Identificador cte: "device descriptor" 0x00, 0x02, // Versión de usb soportada: 02.00 (BCD) 0x09, // Device class (usb.org) -> HUB // http://www.usb.org/developers/defined_class/#BaseClass09h 0x00, // Device subclass (usb.org) \ 0x01, // Codigo protocolo (usb.org)/\Hi-speed hub with single TT 0x08, // Tam. máximo de paquete del zero endpoint 0xAA, 0xAA, // Vendor id (supuestamente asignado por usb.org) 0xCC, 0xCC, // Product id (supuestamente asignado por usb.org) 0x00, 0x01, // Device release number 01.00 (BCD) 0x00, // Index of Manufacturer String Descriptor 0x00, // Index of Product String Descriptor 0x00, // Index of Serial Number String Descriptor 0x01, // Number of Possible Configurations};

Page 39: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM HUB_Config_Descriptor[] = { // Config 0x09, // Long de la parte de configuración 0x02, // Constante indicando lo que somos 0x19, 0x00 // Tamaño total de toda la info, incluyendo interfaz y endpoint 0x01, // Numero de interfaces 0x01, // id de esta configuracion 0x00, // indice a la cadena que la describe (no hay) 0xe0, // Atributos: self powered y wakeup 0x32, // Consumo máximo 0x32*2mA = 100mA // Interface 0x09, // long de la descr. del interfaz 0x04, // cte. 0x00, // número de interfaz 0x00, // valor para alternate setting :? 0x01, // número de endpoints 0x09, 0x00, 0x00, // class code, subclass code, protocol code // este es "Full speed Hub" 0x00, // index of String Descriptor Describing this interface // Endpoint (interrupt in) ID 1 (el id 0 es siempre de control) 0x07, // long 0x05, // cte. 0x81, // mapa bits: dirección "IN", id 1 0x03, // mapa bits: tipo de transmisión por interrupción 0x01, 0x00, // tam maximo del paquete que manejamos 0x0c, // intervalo de tiempo para polling en frame-time (125micro secs.) // => 1500microsecs.};

Page 40: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM HUB_Hub_Descriptor[] = { 0x09, // Longitud 0x29, // Cte.

0x06, // Número de puertos del HUB: 6 0xa9, 0x00 // Flags. 10101001b: // D1,D0 (01) Indican el power switching de los dispostivos // que se conectan => Individual port power switching. // D2 (0): Hub is not part of a compound device. // D4:D3 (01): Individual port over-current protection. // El hub controla problemas de corriente de cada puerto // de forma individual // D15:D5: reservados 0x05, // Tiempo (en 2ms intervals) que tarda la secuencia power-on de // un dispositivo conectado desde que éste tiene corriente. // Básicamante indica el retardo que sufre la corriente en llegar // al puerto/dispositivo conectado. 0x64, // Corriente máxima necesitada por el controlador del HUB. 0x00, // Flags, un bit por puerto posible: todos los puertos son // desenganchables (es decir, es un hub de verdad, no un hub en // un dispositivo integrado que tiene varios dispositivos "en uno") 0xff, // En usb 2.0 mantener a 0xFF este valor.};

Page 41: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port1_device_descriptor[] = { 0x12, // Long del paquete (18) 0x01, // Constante (01 = device descriptor) 0x00, 0x02, // USB 2.0 compliant (BCD) 0x00, // Class code. 0 indica que cada interfaz dará el suyo 0x00, 0x00, // Subclase y protocolo 0x08, // Max packet size 0xAA, 0xAA, // Vendor ID 0x55, 0x55, // Product id 0x00, 0x00, // Device release number 0x00, // Index of Manufacturer String Descriptor 0x00, // Index of Product String Descriptor 0x00, // Index of Serial Number String Descriptor PORT1_NUM_CONFIGS, // 4};

Page 42: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2// Primera contestación de la configuración del port1. La utilizaremos// cuando en la petición sólo podemos contestar con 8 bytes// y le diremos que necesitamos muchos más (las dos// constantes). El host contestará tras pedir esa memoria y// utilizaremos entonces port1_config_descriptor.const uint8_t PROGMEM port1_short_config_descriptor[] = { // Config 0x09, // Longitud del paquete 0x02, // Constante 0x02: configuration description PORT1_DESC_LEN_LO, PORT1_DESC_LEN_HI, // Bytes totales devueltos // (o que necesitamos...) que incluyen el resto de información // (interfaces y endpoints) 0x01, // Número de interfaces 0x00, // id de esta configuración (¿no habría que cambiarla?) 0x00, // id cadena explicativa 0x80, // bitmap: not self powered, not remote wakeup 0xfa, // max consumo energia (* 2mA = 500mA) // Y aquí vendrían interface y endpoint};

Page 43: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2// Versión "larga" de la configuración, distinta de la corta// para el exploitconst uint8_t PROGMEM port1_config_descriptor[] = { // Config 0x09, // Longitud del paquete 0x02, // Constante 0x12, 0x00, // Tamaño total que enviamos. ¡EXPLOIT! ... // Interfaz 0x09, // Longitu del paquete 0x04, // Cte. de protocolo 0x00, // Número de interfaz 0x00, // Alternate setting... 0x00, // Endpoints disponibles: 0. No hay más info después 0xfe, 0x01, 0x02, // Clase - subclase - protocolo. Tiene que ver con

// firmware updates, pero el 0x02 no tiene // sentido.

0x00, // String explicativa // TODO ESTO ES OVERFLOW QUE NOS GUARDARÁ LA PS3 PARA USAR LUEGO 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // padding

MAGIC_NUMBER,default_payload_macro,

};

Page 44: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port2_device_descriptor[] = { 0x12, 0x01, // Longitud y constante 0x00, 0x02, // USB 2.0 0x00, 0x00, 0x00, // Class, subclass, protocol 0x08, // max packet size 0xAA, 0xAA, 0xBB, 0xBB, // Vendor y product id 0x00, 0x00, // Release number 0x00, 0x00, 0x00, // Indices a 3 string descriptors 0x01, // Número de configuraciones};

Page 45: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port2_config_descriptor[] = { // config 0x09, // Longitud de la configuración. 0x02, // Cte. 0x16, 0x00 // Longitud total, incluyendo interfaz etc. Se dice que

// son 22 bytes, aunque la info real según el protocolo // son 18. Le metemos 4 más que harán un trabajo importante...

0x01, // Número interfaces 0x01, // id de la configuración 0x00, // string index 0x80, // not self powered, not remote wakeup 0x01, // max power 2mA. // interface 0x09, 0x04, // Long y cte. 0x00, // número de interfaz 0x00, // alternate setting 0x00, // Número de endpoints 0xFE, 0x01, 0x02, // Class code, subclass y protocolo. 0x00, // String descriptor.

// extra 0x04, 0x21, 0xb4, 0x2f,};

Page 46: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port3_device_descriptor[] = { 0x12, 0x01, // Longitud y constante 0x00, 0x02, // USB 2.0 0x00, 0x00, 0x00, // Class, subclass, protocol 0x08, // max packet size 0xAA, 0xAA, 0x55, 0x55, // Vendor y product id 0x00, 0x00, // Release number 0x00, 0x00, 0x00, // Indices a 3 string descriptors 0x02, // Número de configuraciones

};

Page 47: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port3_config_descriptor[] = { 0x09, 0x02, 0x4d, 0x0a, 0x01, 0x01, 0x00, 0x80, 0x01, 0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x02, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x02, 0x00, … (más de 2Kb después…) 0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x02, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x00, 0xfe, 0x01, 0x02, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x02,};

Page 48: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2

• Desconexión del dispositivo 2…• … y seguimos

Page 49: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port4_device_descriptor[] = { 0x12, 0x01, // Longitud y constante 0x00, 0x02, // USB 2.0 0x00, 0x00, 0x00, // Class, subclass, protocol 0x08, // max packet size 0xAA, 0xAA, 0x55, 0x55, // Vendor y product id 0x00, 0x00, // Release number 0x00, 0x00, 0x00, // Indices a 3 string descriptors

0x03, // Número de configuraciones};

Page 50: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port4_config_descriptor_1[] = { // Config 0x09, // Longitud del paquete 0x02, // Constante 0x12, 0x00, // Tamaño total que enviamos. 0x01, // Número de interfaces 0x01, // id de esta configuración 0x00, // id de cadena explicativa... 0x80, // bitmap: not self powered, not remote wakeup 0x01, // Consumo máximo, 2mA // Interfaz 0x09, // Longitu del paquete 0x04, // Cte. de protocolo 0x00, // Número de interfaz 0x00, // Alternate setting... 0x00, // Endpoints disponibles: 0. No hay más info después 0xfe, 0x01, 0x02, // Clase - subclase – protocolo 0x00, // String explicativa};

Page 51: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port4_short_config_descriptor_2[] = {

// config 0x09, // Long del paquete 0x02, // Cte. 0x12, 0x00, // Tamaño total que enviamos; no entra, así que nos

// pedirán la config otra vez cuando tengan hueco. 0x01, // Número de interfaces 0x01, // id de esta config 0x00, // id la cadena 0x80, // not self powered, not remote wakeup // y se acabó; deberían venir más, pero enviamos solo 8.};

Page 52: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port4_config_descriptor_2[] = { // config 0x09, // Long del paquete 0x02, // Cte. 0x00, 0x00, // ¡EXPLOIT! ¡Ahora le decimos que no vamos a enviar

// nada! (esto es el tamaño total que enviamos, según // debe interpretarlo el protocolo USB.)

0x01, // Número de interfaces 0x01, // id de la configuracion 0x00, // id de la cadena 0x80, // Not self powered, not remote wakeup 0x01, // Consumo máximo, 2mA // interface 0x09, // Longitu del paquete 0x04, // Cte del protocolo 0x00, // número de interfaz 0x00, // alternate setting 0x00, // endpoints disponibles (0, no viene nada luego) 0xfe, 0x01, 0x02, // Clase - subclase - protocolo (DFU) 0x00, // String explicativo};

Page 53: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port4_config_descriptor_3[] = { // config

0x09, 0x02, 0x30, 0x00, 0x01, 0x01, 0x00, 0x80, 0x01, // interface0x09, 0x04, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x02, 0x00, // extra0x3e, 0x21, 0x00, 0x00, 0x00, 0x00, // paddingMAGIC_NUMBER, /* magic number to look for in the start of the page */SHELLCODE_PAGE, /* Initial data search ptr */SHELLCODE_DESTINATION, /* destination ptr for heap structure (jig response) */

};

Page 54: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port5_device_descriptor[] = { 0x12, 0x01, // Longitud y constante 0x00, 0x02, // USB 2.0 0x00, 0x00, 0x00, // Class, subclass, protocol 0x08, // max packet size 0x4c, 0x05, // Vendor id: Sony Corp 0xeb, 0x02, // Product id: JIG. No publicado 0x00, 0x00, // Release number 0x00, 0x00, 0x00, // Indices a 3 string descriptors 0x01, // Número de configuraciones};

Page 55: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM port5_config_descriptor[] = {

// config0x09, 0x02, 0x20, 0x00, 0x01, 0x00, 0x00, 0x80,0x01,// interface0x09, 0x04, 0x00, 0x00, 0x02, 0xff, 0x00, 0x00,0x00,// endpoint0x07, 0x05, 0x02, 0x02, 0x08, 0x00, 0x00,// endpoint0x07, 0x05, 0x81, 0x02, 0x08, 0x00, 0x00,

}

Page 56: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2const uint8_t PROGMEM jig_response[64] = {

SHELLCODE_PTR,SHELLCODE_ADDRESS,RTOC_TABLE,default_shellcode_macro,

};

Page 57: ¿Que falló en Playstation 3?

PSJailbreak: accediendo a lv2

• Y desenganchamos el dispositivo 3…

; shellcode / egghunter ROM:00000018 ld %r4, -0x10(%r3) ROM:0000001C ld %r3, -8(%r3) ROM:00000020 ROM:00000020 loc_20: ROM:00000020 ld %r5, 0x18(%r3) ROM:00000024 addi %r3, %r3, 0x1000 ROM:00000028 cmpw %r4, %r5 ROM:0000002C bne loc_20 ROM:00000030 addi %r6, %r3, -0xFE0 ROM:00000034 mtctr %r6 ROM:00000038 bctr

Page 58: ¿Que falló en Playstation 3?

PSJailbreak: cambiando el SO

• Payload– Translación a zona de memoria segura– Copia de parte del payload a zona residente– Instalación de un driver de USB: “prueba”,

“inicialización”, “desconexión”.– Syscall 36– Hooks• Hook_open

Page 59: ¿Que falló en Playstation 3?

PSJailbreak: cambiando el SO

• “Guerra” de payloads• Clones de PSJailbreak• Backup managers• Aplicaciones homebrew• …

Page 60: ¿Que falló en Playstation 3?
Page 61: ¿Que falló en Playstation 3?
Page 62: ¿Que falló en Playstation 3?
Page 63: ¿Que falló en Playstation 3?
Page 64: ¿Que falló en Playstation 3?
Page 65: ¿Que falló en Playstation 3?
Page 66: ¿Que falló en Playstation 3?
Page 67: ¿Que falló en Playstation 3?
Page 68: ¿Que falló en Playstation 3?
Page 69: ¿Que falló en Playstation 3?

Conclusiones

• Con la clave privada puedes firmar cosas…

• Homebrew sin payload

• Actualizaciones• …

Page 70: ¿Que falló en Playstation 3?

Wanna dance?

Marco Antonio Gómez y Federico Peinado

www.gueim.org