Conectarse

Recuperar mi contraseña

Visitantes



Visitas

contador de visitas

Waninkoko explica como desarrollar un CFW 3.60/61

Ver el tema anterior Ver el tema siguiente Ir abajo

Waninkoko explica como desarrollar un CFW 3.60/61

Mensaje por P1nch0 el Lun Jun 06 2011, 01:11

Waninkoko ha dado una completa explicación en la que detalla todo el proceso necesario para obtener con éxito dicho custom firmware.

1. Las claves privadas NO se pueden calcular para ningun firmware >= 3.56, y NO estan en ningun sitio, que para algo son PRIVADAS (solo las tiene Sony, y si las pudimos sacar fue gracias a un error de ellos los cuales aplicaron mal el algoritmo de cifrado de modo que con unos pocos datos y operaciones matematicas podiamos calcular las claves privadas).

2. SI se puede crear un CFW 3.61, el unico obstaculo es sacar las claves publicas, las cuales SI se pueden sacar, con mayor o menor dificultad pero se pueden. Cada loader se cifra con una clave privada y se descifra con la clave publica correspondiente. Pero el loader de nivel mas bajo en un FW se cifra y se descifra con la root key, la cual es INVARIABLE porque la root key publica utilizada para descifrar dicho loader se encuentra en el metldr (obviamente, el metldr tendra que poseer la clave publica para descifrar el loader) y el metldr NO se puede actualizar de ninguna forma, de modo que la root key no se puede cambiar de una version a otra de un firmware porque se fastidiaria todo.

Entonces, si queremos crear un CFW de la version 3.61, modificando el LV2 para añadir nuevas funcionalidades, tenemos que ir hackeando toda la cadena de loaders hasta llegar a el. Ejemplo:

METLDR -> LV0LDR -> LV0 -> LV1LDR -> LV1 -> LV2LDR -> LV2

Mas o menos esta es la cadena de loaders (desconozco si hay alguna pequeña variacion en el FW 3.61).

METLDR, como he dicho, NO se puede actualizar.

METLDR descifra LV0LDR con la root key (LV0LDR es el loader de nivel mas bajo, si no contamos a METLDR) y lo ejecuta.

LV0LDR descifra LV0 con la lv0-key (esta clave si puede cambiar entre versiones de firmware ya que LV0LDR SI es actualizable y por tanto LV0 podemos cifrarlo con una clave privada y actualizar LV0LDR para que lo descifre con la nueva clave publica correspondiente) y lo ejecuta.

LV0 descifra LV1LDR....

blablabla

LV2LDR descifra LV2 con la lv2-key y lo ejecuta.

Por tanto, si queremos un CFW, necesitamos descifrar LV0LDR (con la root key, la cual publico geohot y nunca va a cambiar), modificar LV0LDR cambiar la clave de descifrado de LV0 (la cambiamos por una clave la cual sea capaz de descifrar un LV0 cifrado con una clave privada que nosotros SI conozcamos... ¿que clave privada? cualquiera, como si es una clave que generamos nosotros), ciframos LV0LDR con la root key, y ya podemos modificar LV0 a nuestro gusto ya que ahora LV0 se descifrara con una clave publica diferente, de la cual conocemos la clave privada. Y asi modificamos toda la cadena hasta llegar a LV2, modificarlo y recifrarlo con las nuevas claves que hemos elegido.

Y bueno, esa es la forma contada a grandes rasgos (cuando digo cifrar/descifrar, no me refiero a los contenidos de los loaders, porque eso funciona con AES y es cifrado simetrico y no tiene sentido hablar de clave publica/privada, sino que me refiero realmente a la cabecera de dichos loaders, a la firma, la cual utiliza RSA y es donde intervienen las claves publicas/privadas, con el UNICO objetivo de comprobar que dichos loaders NO han sido modificados).

En el caso del FW 3.61 el tema es un poco mas complejo ya que hay claves publicas RSA y claves AES que no son faciles de obtener, pero bueno, que hay metodos para obtenerlas, hay gente que las tiene, y por tanto no es imposible.

Ahora, hay que tener en cuenta que un CFW solo se puede instalar si la consola se encuentra en un FW 3.55 o inferior, porque en las versiones superiores se hace uso de un nuevo actualizador, el cual verifica el paquete de actualizacion (los datos internos del PUP, para que me entendais) chequeando unas nuevas firmas (que antes no existian y ahora son obligatorias) de las cuales no tenemos ni la clave publica ni la privada (la publica se puede sacar, pero la privada nos podemos ir olvidando y aqui no hay ninguna cadena de nada de modo que podamos evitar esto... el actualizador es una aplicacion aparte del FW y ya no tiene que ver con lo anterior explicado).

Dicho esto ultimo, algunos pensareis que si al actualizar a un CFW 3.56/3.60/3.61 ya no podreis volver a instalar ningun otro CFW (es decir, os quedais para siempre en ese CFW o actualizais a un FW oficial). La respuesta es SI, pero bueno, es evitable ya que, al crear dicho CFW, podemos modificar el VSH (o lo que corresponda) para hacer uso del actualizador viejo (el cual no chequea las firmas nuevas y por tanto no tenemos ningun obstaculo para instalar nuevos CFW), o modificar el APPLDR para que nos permita cargar el nuevo actualizador pero modificado para que no compruebe las firmas (el nuevo actualizador se puede modificar, claro, pero necesitamos modificar tambien el APPLDR de nuestro FW actualmente instalado para poder recifrar dicho actualizador con una clave privada conocida y que luego el APPLDR sea capaz de descifrarlo y ejecutarlo).

Y eso es todo.

Fuente: [Tienes que estar registrado y conectado para ver este vínculo]

_________________


src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

P1nch0
Admin
Admin

Mensajes : 369
Puntos : 3550
Reputación : 6
Fecha de inscripción : 13/11/2010

Ver perfil de usuario http://www.informaticaesp.forosweb.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.