Ver Mensaje Individual
Antiguo 15/06/2011, 22:49   #211
romant
Usuario Registrado
 
Fecha de ingreso: 26/feb/2004
Mensajes: 61
romant es realmente agradableromant es realmente agradableromant es realmente agradableromant es realmente agradable
Smile Nuevas observaciones del fimware.

Observaciones de cada bloque en los firmwares de Ferguson, así a bote pronto:

Los primeros 16 bytes de cada bloque tienen valores relativamente fáciles de identificar, tomemos como ejemplo el firmware 2.10B7 del TS100:

[CODE]01 FE 01 01 00 - Desconocido (de momento)
19 45 3D 00 21 - Tamaño del bloque maincode
00 00 - Siempre a cero
F3 55 DD E6 - CRC32 de este bloque (un bloque con el texto ASCII "NCRC" en vez de 4 bytes indica que ese bloque no tiene CRC, por el ejemplo el bootcode o el data1 y data2).[/CODE]La segunda línea de 16 bytes es el nombre de la sección en este caso maincode\0 y FF hasta completar los 16 bytes
La tercera línea es un identificador de la versión del firmware en modo ASCII en este caso V2.10B7\0 y FF hasta completar los 16 bytes
La cuarta línea es la fecha y la hora de compilación, también en ASCII: 20110331-214556

Y aquí viene una sorpresa, la variación entre el firware 2.10B5 y 2.10B7 es mínima, de hecho se compiló el mismo día pero en horas diferentes (el B5 tiene este string: 20110331-190114). Y las variaciones en le maincode se restringen únicamente a 23 bytes ubicados justo después de la fecha y la hora de compilación... ¿Qué hacen esos 23 bytes? pues es algo que habrá que investigar porque parece que los de Starmax le daban una importancia elevadísima a actualizar esos firmwares "erróneos"... algo que siempre me olió muy mal. Pero bueno, también nos indica que al menos hasta esa zona todavía no se ha aplicado la compresión (si es que existe), hay que comparar estos maincodes con maincodes de otras marcas para tratar de encontrar el punto en el que arranca el procedimiento de compresión y determinar qué compresion usan en esta sección del firmware (edito otra vez: que parece ser la dirección 00010080h al menos en los firmwares Openbox y Ferguson).

Ahora una cosa buena he sacado de esta observación, el hecho de que sólo algunas secciones (maincode y gestión del TS100) lleve CRC32 me indica que no existe un CRC32 global, de hecho los 4 últimos bytes del firmware son FF. Y lo mismo puedo decir del comienzo... esto nos permitiría generar una sección (si los puntos de entrada de las funciones fuesen fijos) y rehasearla calculándole un nuevo CRC32, el deco creería que viene de Ferguson y se la tragaría.

Por cierto al que le parezca que esto es un gran avance que ponga los pies en el suelo, esto no es nada, sólo son observaciones.

Edito: ¿No tendrá por ahí alguien un firmware del TS100 inferior al B5? ¿O entre el B5 y el B7?. En fin algún firmware del TS100 adicional sería bienvenido, en algún upload center please y comunicación por MP.

Es tarde, otro día más ;-).

Última edición por romant; 15/06/2011 a las 23:10.
romant está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir