VGF escribió:Colic, ¿cómo llevas el asunto?
Pues mas o menos, estoy teniendo unos pequeños problemas con el FileList.bin, en concreto con la decodificacion de los nombres de ficheros ofuscados.
Bueno, como hoy no voy a hacer mas os cuelgo lo que llevo de codigo fuente que lo he programado, esta en Python asi que cualquiera con unos minimos conocimientos puede ponerse a modificar cosillas
http://www.megaupload.com/?d=EFWRF9KEHace falta tener el filelist.bin y filelist.000 de wii o ps3, puede utilizar ambas a la vez.
El programa se ejecuta con "python dse.py" , el dsefunc.py para recopilar funciones utiles que podeis modificar.
AL principio del fichero se configura la ruta de los ficheros FileList, si solo disponeis de una version (PS3 o WII) pues que ambas rutas apunten al mismo.
Os cuento mi problema,
Cuando ejecuto el programa os saldra un error de una funcion con prints debug q esta activada (si poneis los valores de debug a 0 en la linea 190, 205 no saldra el debug raro, solo el error xD)
Aqui esta el error
DEBUG -> fileIdx=137 offset=20756 o=0 i=26 offset+i=20782 f.tell=20779 INT_CHAR_FORMULA=-141
...
..
ValueError: chr() arg not in range(256)
El fallo ocurre igual tanto con los ficheros de PS3 como en WII
Bueno falla a partir del nFile[137], habra sobre 500 y pico... desde ese hasta el final el fallo se acumula asi que ni ignorandolo.
Y el error ocurre pq el INT_CHAR_FORMULA es negativo q no se pq leches pasa, debe ser por algun offset o algo q haya metido mal.
Al ser negativo, petara al invocar chr (funcion que transforma de un numero a su equivalente en ascii, no existen ascii con valores negativos)
Habria que mirar si la he liado en alguna parte del codigo anterior o bien con un editor HEX ver esas posiciones que leches pasa xD
Para VGF:
- Al final del programa hay un trozo relativo a la extraccion de los ficheros del filebin. Utilizando offsets a pelo te generara un nuevo fichero con las cosas extraidas. Los offsets tambien los tienes en los vectores de nFiles que puedes sacar haciendo un print vnfiles["WII"][ID] Haz pruebas si quieres.
- El codigo fuente del .net funciona perfectamente en linux, he cambiado los offsets con los que has puesto para probar... o bien los offsets no corresponden o la parte inicial del fichero edb ha cambiado, pq el programa salta con una excepcion de que el fichero edb no es correcto.(para PS3, la version de WII perfecta)
- No estaria mal si tienes el exe del extractor antiguo de filelist.000 que lo colgaras para hechar un vistazo.
En general hay algunas cosas mas que no me cuadran, pero bueno, cuando se termine con el filelist.bin las mirare con detalle.
Mañana si puedo seguire otro rato si puedo, pero fin de semana cosa mala xD