r04drunner escribió:Es interesante saber que identificadores de autenticación LPAR tenían las regiones del OtherOS original de Sony. Yo he creado la región de OtherOS con el id 0x1080000004000001, en lugar del de GameOS y a partir de ahí, la PS3 intenta igualmente recrearlas ya que no encuentra un sistema de archivos válido en la región de GameOS, pero no es capaz de modificar la tabla de particiones y es necesario sacar el HDD para formatearlo en el PC.
Pensaba que igual esa region de OtherOS podia estar usando un ACL diferente al de la region de petitboot, pero en el dump de vanitas se ve que usan el mismo (y es el mismo que probaste tu), asi que nada nuevo supongo, pero eso completa la tabla de los ACL's, esta bien tenerlo ahi apuntado, quizas algun dia se pueda volver a usar o haya otras formas de manipularlo a nuestro beneficio

Por cierto, parece que la "deteccion de la particion linux" no se hace basandose en estos ACL's... porque si fuera asi la de vanitas ya la habria intentado formatear el hypervisor (o gameos) de los firmwares nuevos que ha ido instalando... aunque los CFW's llevan parches relaccionados con los ACL's, asi que no se, me tendre que quedar con la duda hasta entenderlo mejor
Vanitas escribió:¡Hola! ¡Ya he llegado!
Aquí tengo el dump de la tabla de particiones:
La verdad, no sé ni como ver el contenido de ese archivo... Creo que lo de editar yo el Wiki casi como que no X'DDD
Si hiciese falta, para el tema de la encriptación del HDD (el tema de encdec si no voy mal) podría también hacer una imagen del disco duro (60Gb) sector por sector, bajo previo vaciado y formateo completo (para poder comprimir la imagen y que así pese infinitamente menos). Así es un HDD más con el que comparar.
P.D: Y yo dándome el reventón de downgradear a 2.80 la otra vez, pasando por el 3.55 downgrader, habiendo podido en la 3.55 CFW... Ains. me quedo con ese dato, r04drunner. Hasta la vida útil de las NAND te lo agradece

¡Un saludo a los 2! ^^
Genial
![Ok! [oki]](/images/smilies/net_thumbsup.gif)
me ha servido de mucho (aunque lo que he editado en wiki no es mucho texto) pero me ha resuelto 2 o 3 dudas, como te has enrollao te lo voy a explicar lo mejor que pueda, asi lo ves tu mismo y puedes comprobar tu tabla de particiones

Necesitas abrirlo con un editor hexadecimal, si estas en windows puedes usar este, que es gratis y lo puedes bajar en version portable asi que no necesita instalacion --->
http://mh-nexus.de/en/hxd/Yo lo que he hecho ha sido seleccionar un area con el raton arrastrando y luego en las pestañas de arriba "edit--->copy as--->editor view" y es lo que voy a pegar aqui... lo que he copiado es el header y las 3 regiones... he separado las regiones con asteriscos *** para que se vea donde acaba cada area y empieza la siguiente, tambien he añadido unas notas a la derecha del header y la primera region con flechas <--- (las otras regiones es la misma estructura)
La tabla de particiones sigue hasta el offset 0x1000 (8 sectores)... pero yo solo he copiado lo interesante... el resto esta lleno de ceros
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000010 00 00 00 00 0F AC E0 FF 00 00 00 00 DE AD FA CE .....¬àÿ....ÞúÎ <--- magic
00000020 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 02 ................ <--- numero de regiones y el otro unknown
***
00000030 00 00 00 00 00 00 00 18 00 00 00 00 05 7C 7C 68 .............||h <--- region 1 inicio y tamaño
00000040 10 70 00 00 02 00 00 01 00 00 00 00 00 00 00 03 .p..............<--- region 1 ACL1
00000050 10 70 00 00 01 00 00 01 00 00 00 00 00 00 00 03 .p..............<--- region 1 ACL2
00000060 10 20 00 00 03 00 00 01 00 00 00 00 00 00 00 03 . .............. <--- region 1 ACL3
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
***
000000C0 00 00 00 00 05 7C 7C 88 00 00 00 00 00 3F FF F8 .....||ˆ.....?ÿø
000000D0 10 70 00 00 02 00 00 01 00 00 00 00 00 00 00 03 .p..............
000000E0 10 70 00 00 01 00 00 01 00 00 00 00 00 00 00 03 .p..............
000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
***
00000150 00 00 00 00 05 BC 7C 88 00 00 00 00 01 3F FF F8 .....¼|ˆ.....?ÿø
00000160 10 70 00 00 02 00 00 01 00 00 00 00 00 00 00 03 .p..............
00000170 10 70 00 00 01 00 00 01 00 00 00 00 00 00 00 03 .p..............
00000180 10 80 00 00 04 00 00 01 00 00 00 00 00 00 00 03 .€..............
00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000001D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Los tamaños y posiciones estan en sectores (1 sector = 512 bytes) y hay que hablar en hexadecimal porque estas cosas hay que calcularlas con una calculadora delante (1 sector = 0x200 bytes)... Pero empecemos por el header que tiene un tamaño de 0x30 bytes (las 3 primeras lineas horizontales en el editor hexadecimal)

Lo primero que aparece donde pone "FACE OFF DEAD FACE" es una tonteria que se les ha ocurrido meter ahi como identificador de control (en la flash tambien lo usan en el primer sector porque estan encriptadas y despues de aplicar la desencriptacion del primer sector se intenta leer eso... si se lee bien es que la desencriptacion funciono bien)
El 3 y el 2 justo debajo son 2 valores separados, uno es el numero de regiones y el otro no se sabe (o yo no lo he encontrado por ahi explicado que significa)
A partir de ahi empiezan la informacion de cada region... cada una tiene un tamaño de 0x90 bytes (9 lineas horizontales), todas tienen la misma estructura asi que con explicar la primera ya queda explicado todo
los primeros 0x8 bytes (media linea horizontal) es el sector donde comienza la region y los siguiente 0x8 bytes (la otra mitad de la linea horzontal) es el tamaño de la region
En tu caso una cosa interesante es que tu primera region empieza en el sector 0x18... delante de ella esta la tabla de particiones del HDD (los primeros 0x8 bytes del HDD... que es justo lo que tu has dumpeado y el archivo del que estamos hablando)... si haces el calculo (0x18 - 0x8 = 0x10)... podemos saber que justo despues de la tabla de particiones que has dumpeado hay una zona de tamaño 0x10 sectores que no sabemos que es, asi que el HDD empieza en este orden:
Primero la tabla de particiones del hdd (0x8 sectores)... despues la zona de tamaño 0x10 sectores... y despues empieza tu primera region en el sector 0x18 (que es GameOS... y su tamaño depende del tamaño del HDD... y en este caso tiene un tamaño de 0x57C7C68 sectores)
Las siguientes lineas del editor hexadecimal son los ACL's los primeros 0x8 bytes (media linea) y la otra media linea (el byte de la derecha del todo) desconocida, en tu caso los ACL's de la primera region son estos, en este mismo orden:
1070000002000001
1070000001000001
1080000003000001
El primero es PS3_LPAR, el segundo SCE_CELLOS_PME, y el tercero PS2_*LPAR (en realidad este ultimo corresponde a varias LPAR relaccionadas con el emulador de PS2) y todos estos ACL's tienen asociado un "3" a la derecha (el numerito desconocido) que tiene toda la pinta de ser un "modo de acceso" a la region, aunque como casi siempre es un 3 en casi todos los ACL's de todas las otras regiones no parece tener mucha importancia
Hasta ahi explicado el header + 1 region... ahora si quieres ver las areas "escondidas" entre regiones hay que darle un rato a la calculadora (en principio son paddings llenos de ceros, pero al estar fuera de las regiones se puede considerar que no hay acceso directo a ellas)
Si sumas la posicion donde empieza la primera region + el tamaño de la primera region, se supone que tendrias la posicion donde empieza la segunda region, nop ?... weno, esto seria asi si no existieran esas areas fuera de las regiones

Por ejemplo, para ver la separacion entre la region 1 y la 2 podemos empezar pillando el calculo de antes de la region 1:
Primero la tabla de particiones del hdd (0x8 sectores)... despues la zona de tamaño 0x10 sectores... y despues empieza tu primera region en el sector 0x18 (que es GameOS... y su tamaño depende del tamaño del HDD... y en este caso tiene un tamaño de 0x57C7C68 sectores)
Eso nos da un total de 0x57C7C80... pero en la tabla de particiones pone que la segunda region empieza en 0x57C7C88... si lo restas: 0x57C7C88 - 0x57C7C80 = 0x8... este 0x8 es la separacion entre ellas
Para hacer el calculo en el orden correcto (lo mas rapido posible sin liarte) en realidad lo que se hace es coger la posicion posterior a lo que estas buscando (en el caso de que haya algo posterior marcado, en este caso lo podemos hacer con todas las regiones menos con la ultima) y restarle todo lo anterior, por ejemplo:
Entre la tercera region y la segunda: 5BC7C88 (donde empieza la tercera region) - 3FFFF8 (el tamaño de la segunda region) - 57C7C88 (donde empieza la segunda region) = 0x8
--------------------------------
Esto es lo que he añadido en la wiki:
http://www.psdevwiki.com/ps3/index.php? ... ldid=27812A la izquierda el texto antiguo, y a la derecha el nuevo, los cambios estan coloreados
Lo primero que se ve marcado en color arriba es la zona "misteriosa" de tamaño 0x10 sectores que viene justo a continuacion de la tabla de particiones que has dumpeado (y esta relaccionado con lo que hay coloreado abajo donde pone "vflash displacement", se refieren a lo mismo)
El problema que tenia yo es que la tabla pretende mostrar todos los tipos de instalacion, y entre todas las anotaciones que he ido encontrando habia muchas variaciones (que suponia que eran consecuencia de manipular regiones de formas no-oficiales... muchas de las anotaciones eran de graf y glevand asi que es normal)
Ahora que he visto tu tabla de particiones por mi parte queda confirmado que entre las regiones del HDD se crean areas de separacion de 0x8 sectores (llamemoles padding o como se quiera llamar). Tanto en NOR (con una VFLASH delante de la particion de gameOS), como en NAND pasa lo mismo
Es mas... me he dado cuenta que esas areas fuera de las regiones coinciden perfectamente entre NOR y NAND (si a una tabla de particiones de HDD de una PS3 NOR le restas el tamaño de la VFLASH todo coincide con la tabla de particiones de una NAND)
En ese sentido me ha ayudado mucho tu dump porque me estaba volviendo loco pensando como meter todos los paddings de todos los modelos en la tabla

Si te fijas antes tenia apuntado que la region ps3db (gameos) en NAND empieza en el sector 0x20... pero en tu dump empieza en el sector 0x18
Si pillas la tabla de particiones de una NOR, la primera region empieza en el sector 0x8 (porque tiene delante de ella la tabla de particiones del HDD), es la VFLASH y tiene un tamaño fijo de 0x80000... luego viene el "area misteriosa" de 0x10 sectores... y justo despues la region de gameOS que empieza en el sector 0x0x80018... si le restas la vflash te queda el 0x18 igual que en NAND

Esos 0x18 son la tabla de particiones (0x8) + la zona misteriosa (0x10) comun para todas por lo que se ve
La separacion entre regiones dentro de la VFLASH no sigue estas reglas por cierto (se ve mejor en la tabla de la wiki)
Lo otro que cambie en la pagina (donde habia interrogaciones) son los ACL, eso queda ya completado

---------
Gracias por comentar lo de la imagen de hdd, pero creo no es necesario, yo tengo muchas dudas sobre como se hace la encriptacion sobre las regiones, pero es algo que se me escapa... con dejar una tabla preparada para poder poner la informacion mas adelante me vale

Lo que si se es que para desencriptar completamente el HDD de una PS3 como la tuya (FAT con NAND) en un PC lo "unico" que se necesita es el "EID_root_key" (el key usado para conejear el EID... que entre otras cosas se usaba para hacer la conversion entre CEX y DEX)... ese key lo puedes dumpear con un programa que creo "flatz" llamado "EID_RK_dumper.pkg"... es un .pkg y teoricamente se puede portar para que funcione en firmwares nuevos, pero nadie lo ha hecho aun, asi que para usarlo hay que bajar a 3.55
A partir de ese key se pueden derivar (usando un programita en PC) el ATA-data-key y el ATA-tweak-key que necesitas... en la practica el programa que manipula el HDD en PC te crea estos keys derivados, asi que solo necesitas el "EID_root_key" (para NOR ademas de esto se necesitan los keys del encdec que se usan para aplicar una segunda "layer" de encriptacion que afecta solo a las regiones dentro de la VFLASH, pero esto no pasa en NAND)
Y por cierto... voy a poner unas cuantas interrogaciones en la tabla donde las encriptaciones porque no me fio mucho de que este todo correcto
Lo que si podias hacer (ya que estas y es lo mismo que has hecho antes) es repetir el comando que dije para dumpear la tabla de particiones del HDD... pero esta vez pon 0x18 sectores, asi:
# dd if=/dev/ps3da of=HDD_ptab_DECHA00A_OtherOS bs=512 count=18
Con eso vas a dumpear la tabla de particiones otra vez... y tambien los 0x10 sectores "misteriosos" que hay a continuacion... estarias dumpeando desde el primer byte del hdd... hasta donde empieza la region de gameOS exactamente
No hace falta que subas el archivo... seguramente va a estar lleno de ceros, asi que con que lo mires en el editor hexadecimal y lo comentes aqui es suficiente
En el caso de que haya algunas areas solitarias con datos sospechosos de ser info "per-console" o "per-user" (por ejemplo una linea con caracteres aleatorios en hexadecimal de tamaño 0x16 bytes rodeada de ceros) no lo subas en publico