Ver Mensaje Individual
Antiguo 20/07/2008, 17:40   #642
SantiPHREACK 
Usuario PREMIUM+
 
Fecha de ingreso: 13/abr/2006
Mensajes: 223
SantiPHREACK está en el buen camino
Wenas Rafa xD

Me acabo de pasar por el foro de Comag ingles, y me alegro que les hayas puesto al día sobre la necesidad de fixear los últimos firms de truman.

Lo que si me he dado cuenta es que están intentando adaptar el nuevo fix a los [B]Yumatu[/B], pero lo están haciendo mal, ya que aunque sean de la misma versión el checkeo se encuentra en otro offset diferente, con lo cual la cadena a fixear que tienen no es la correcta.

En principio localizar dicha cadena necesaria se puede realizar de varias formas, pero te explico los dos métodos mas sencillos por si quieres comentárselo y que ademas debería funcionar para todas las futuras versiones.

lo primero es extraer y desempaquetar el maincode para poder localizar la cadena necesaria.

Si te fijas en las cadenas de las dos versiones actuales, hay una pequeña porción de código intermedio que es común en las dos, en concreto esta "[B]02A2FF0042300400422C08004014212000001480053C[/B]", osea que bastaría con buscar dicha cadena en el maincode desempaquetado y ya tendríamos la zona que nos interesa, pero como es necesario localizar la cadena completa habría que coger la dirección del offset donde comienza y restarle los 30 bytes ([B]-1E[/B]h) iniciales que faltan para que nos de la dirección correcta del inicio de la cadena que se necesita fixear, y a partir de esa dirección copiarnos los 84 bytes totales del checkeo, y ya tendríamos la cadena completa necesaria xD

El otro método es un pelín mas complicado, pero seria el mas recomendado (ya que conque varíen una simple linea de código de dicho checkeo, seguramente dejaría de funcionar el método anterior) y te cuento:

Sabiendo que el mensaje que muestra en pantalla es "Not official HW, Please ...", buscamos en el maincode dicho texto y nos apuntamos su offset donde comienza (en el caso de ese yumatu esta en la dirección 13FCC8h), pero solo nos interesaría sus últimos cuatro dígitos de dicha dirección (es decir FCC8h) y como sabemos que dicho maincode se ejecuta en 80000200h de la SDRAM, con lo cual es necesario sumarle esos 200h finales a la dirección (y nos quedaría FEC8h), le swapeamos los dos bytes resultantes (es decir C8FEh) y por ultimo le añadimos a continuación A524h (y nos dará "C8FEA524") que seria el pedacíto de código que se encargaría de llamar al texto que muestra en pantalla, con lo cual buscándolo en el maicode ya tendríamos localizado la zona donde se encontraría el checkeo a fixear, y el resto seria parecido al método anterior xD
SantiPHREACK está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir