manugarrote escribió:Pues eso... a ver si saca algo. Que ya nos apañaremos nosotros para "añadirle" otras funciones, o darle otros usos.
airam1809 el problema era que necesitaba otro elf firmado, pero en 2 MC distintas. Esa fue una vía que estube siguiendo, pero que al final dejé apartada. Lo último que intenté fue cojer una aplicación homebrew miré sus datos con el programa ese que os comenté (el que necesitaba el cygwin que tanto le gusta a boti) miré cuál era el offset (el lugar) dónde empezaba el código de la app (hay que decir que en el ELF, al principio se encuentran también codificados datos como el fabricante, el micro que se usó para compilar...) edité el dvdplayer.elf, a continuación de la firma digital que deduje (para más info mirar algunos post atrás) y copiar los datos del ELF homebrew (no todo, sino desde el inicio del programa al final). Ese dvdplayer modificado con él código de otra app la tiene una paersona para hacer la prueba (él me dio su dvdplayer.elf, por lo que la firma siguie intacta). No sé si funcionará, el problema es que coloqué el código un poco al azar, me imaginé que estaba justo a continuación de la firma, pero puede no ser así. Hasta que no haga las pruebas no sabré si ha funcionado o no. También estoy haciendo algunas cosas con el debugger del Pcsx2, para mirar las direcciones y eso, pero por ahora nada nuevo.
A ver si me dicen que tal ha ido la prueba, pero si alguien está interesado en los detalles se los daré.
Ésto de esperar los resultados y la release del "amigo"...
Usas un desensamblador?
Es que meterle mano a un ELF es trabajo complejo, mas que nada por la constitución del binario en si, que lo lleva todo en uno (ejecutables, código objeto, como tablas de strings o punteros, depuradores, etcétera).
Por eso, con un simple editor hexadecimal no se hace mucho.
Hay un proceso que ayuda mucho al entendimiento del OSD y de los módulos que hay en la bios de la PS2.
Se trata de dumpear los archivos de nuestra bios, para luego proceder a su desensamblado.
Por ejemplo, el OSDSYS (que es todo el SO de la PS2) de dumpea empaquetado, por lo que hay que desempaquetarlo (con el PS2Unpacker o similares) para poder usarlo con el desensamblador.
El que yo uso el desensamblador que hizo hanimar hace un tiempo:
Te muestra como se construyen las nids en código ensamblador (ese lenguaje que me mola tanto a mi y a mi profesor de Estructuras
) en cualquier "modo de privilegio", como en kernel (nids que hagan uso del EE, GS, VPU, VFPU, etcétera).
Bien, como dije en posts anteriores, los archivos de la bios de la PS2 no están firmados (como mucho comprimidos) y de pueden desensamblar sin problemas, pero otra cosa es intentar ese proceso con archivos firmados (dvdplayer.elf y .irx).
El tema es que los datos con los que trabajamos no son los binarios con una leve modificacion en su estructura en base a una ID privada como se podría prever, sino que son datos interpretados.
Esto es una putada (con perdón de la mesa) porque esos datos son una galimatías enorme sin sentido (el proceso de haber pasado el binario original por unas cuantas operaciones matemáticas, también llamadas funciones hash) sin sentido fuera de la PS2 (que es la que debe interpetar dicho galimatías, invirtiendo los algoritmos matemáticos que se usaron en su creación).
Esos datos interpretados son los que se van a firmar de forma única (los datos interpretados identifican de manera unívoca) con la ID privada del usuario (la ID del DRM MagicGate en nuestras MCs).
Solo hay que ver en cualquier editor hexadecimal, que ni el dvdplayer.elf ni el dvdplayer.irx muetran un "identificador de archivo" ELF (datos interpretados y firmados, o sea, firma digital en toda regla).
Creo que ninguno de nuetro "gremio" (me refiero a "testadores" xDD) sabe que tipo de hash usa Sony para interpretar los datos. Solo se sabe que es propietaria, lo que no quiere decir que no se base en las funciones hash mas recurrentes (como el SHA-1, que "descompone" la información en bloques de 160 o 256 bits, llamados palabras, y las mezcla según el algoritmo que tu quieras usar. Es un sistema que da flexibilidad y, segúramente, será ese el usado por Sony).
Echándole las suficientes horas (desensamblando uno por uno los archivos de la bios) de podría "desmantelar" esa firma digital. Las funciones que la hacen posible están ahí (la PS2 no dispone de hardware de encriptación, ni mucho menos de una memoria encondida en la placa que lleve la gestión del soft necesario y sea "inexpugnable").
Solo hay que tener los conocimientos necesarios de instrucciones MIPS (unas cuantas horillas emulando en el PCSpin lol) para saber que es lo que hace en cada momento (lo que mas interesa es el booteo de la máquina, claro. Tampoco hay que ir dando palos de ciego xD).
Yo, desde luego, entre la interpetación del kernel de la 360 y esto, no doy abasto
del boti escribió:Mola que te cagas......(en horas intespectivas claro...
)
Y al amigo habra que esperarlo sentado nen...
Pero si a ti te moló el cygwin!!!
Lo que no te moló tanto fue el ps2toolchain
A ver si te metemos el toolchain precompilado del ventanucos, aunque con la paliza que te he pegado hoy no se yo si vas tener ganas
Salu2.
PD. Algún voluntario quiere sponsorizarme los tochos estos???
Los cobraría baratos