Ver Mensaje Individual
Antiguo 12/06/2006, 22:18   #738
quebus
Usuario Activo
 
Fecha de ingreso: 10/oct/2003
Mensajes: 67
quebus está en el buen camino
Sobre el checksum

Dandole vueltas al checksum se me ocurre una idea. Supongamos que esto funciona asi: el firmware (el boot) al iniciarse ejecuta una rutina de calculo de checksum entre las direcciones inicio_a_final escritas en la eeprom y el resultado lo compara con el escrito en la eeprom, si no coincide muestra en el display un error y el deco se detiene.

¿Y si ponemos en la eeprom una condicion que se cumpla siempre sea cual sea el firmware contenido en la flash sobre el que se debe calcular?. Si esto funciona podriamos reflashear otros firmwares sin tener que volver a modificar la eeprom por este motivo.
La primera condicion que se me ocurre (hay otras) es poner el inicio como siempre a FF800000, y el final tambien al mismo FF800000 con un checksum 00000000,
tomando como ejemplo el hex para el 4410, seria modificar en la eeprom la linea de este modo
:101F200040365F31FF800000FF80000000000000AD

Esta solucion plantea algunas dudas, puede que la suposicion no sea acertada o que el programador haya incluido alguna comprobacion mas, por ejemplo un numero minimo de bytes sobre los que calcular o un valor de checksum no valido por imposible, y que el engaño no funcione.
Y tambien si esto nos resulta interesante porque si anulamos esta comprobacion de validez mediante el checksum, tambien nos quedamos sin una rutina de chequeo ante la corrupcion interna del firmware.

Un saludo.
quebus está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir