Explicacion de como crear un CFW 3.60 / 3.61

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Lo que empiezo, lo termino.

    Group
    FUNDaDoR
    Posts
    12,533
    Location
    En algún lugar del Espacio

    Status
    Offline

    ::imagen::


    Jailbreak360



    Hola amigos con la noticia de hace unos dias de las keys publicas del fw 3.6+,les vamos a mostrar la manera de hacer un cfw y lo que nos haria falta para su desarrollo:

    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 ya sacaz vuestras conclusiones de nuestro amigo Waninkoko .............................
     
    .
  2. repulse
        +1   Like  
     
    .

    User deleted


    gracias! es muy a grandes rasgos, pero como culturilla está bien.
     
    .
  3.     Like  
     
    .
    Avatar

    Lo que empiezo, lo termino.

    Group
    FUNDaDoR
    Posts
    12,533
    Location
    En algún lugar del Espacio

    Status
    Offline
    De nada es una idea no esta todo todo.

    Un saludo
     
    .
2 replies since 3/8/2012, 23:48   62 views
  Share  
.