Banner publicitario de PCBWay

Reparador de Dumps (TV Chinos no Smart)

Ok, es entendido bastante, en cuanto el conjunto de funciones del control remoto, ¿ como seria ?.
Un modulo o botón que permitiera extraer la secuencia, relacionada al control remoto verdad, en un archivo binario , para luego, modificarlo con alguna aplicación, que cuando se importe muestre los valores en hex con el nombre de cada función, por ejemplo en los dvd se utiliza un software que al cual se le pone un interfase, para capturar los datos enviados por el control remoto, y luego se le agrega el valor con la función deseada, pero bueno lo más importante es obtener los valores hex y analizarla con algunas de las que tengo en casa.
No creo que hayas entendido, y al parecer tampoco has estudiado los repositorios.
No es como piensas y al parecer no va a ser fácil o posible realizar esa modificación.
Yo pensé que una vez obtenidos los nombres de archivo a los que pertenece cada módulo, alguno de ellos podría ser el correspondiente al protocolo del control remoto, pero no es así.
Como esta nueva aplicación sí es capaz de mostrar todos los módulos y su identificador, realicé una comparación con volcados para la misma placa pero para diferente marca de TV, y resulta que los módulos son idénticos y lo que cambia es el AP_C.

Entonces, el reemplazo del AP_C y aunque se reescriba su tabla de particiones y demás datos en headers, no tendría sentido.
Esto mismo aplica para el panel LCD.
El AP_C tiene un bloque sin comprimir de 14336 bytes que se puede modificar (tabla de particiones), pero el resto no, aunque se descomprima.

Por el momento no he encontrado ningún código fuente sobre el AP (AP_C = AP Comprimido), así que no hay nada que hacer al respecto.
Sin embargo, esta aplicación no está pensada para realizar esas modificaciones, sino para reparar el firmware.
Con esta nueva versión Ultimate pude reparar volcados dañados que tenía guardados en una carpeta y que en su tiempo no los conseguí.
Incluso pude dejar correctos los volcados que las versiones anteriores de Dump Repair dejaba a medias.
Sobre esto ya les explicaré y también por qué funcionaban aunque quedaran truncados.

Para que tengan una idea más clara sobre Dump Repair Ultimate, les diré que es similar a la aplicación china, pero mucho más sofisticada.
 
Hola.
Este es un archivo flash de DVR y está desactivado.
No pude encontrar la manera de repararlo con el programa. Por favor, revísalo.
Gracias.
 

Adjuntos

  • AHR0RG.zip
    9.7 MB · Visitas: 2
Dump Repair Ultimate v1.21.09.25

Después de un arduo estudio al firmware MStar no Smart, surge esta nueva aplicación.
Ultimate puede procesar toda la estructura del firmware y mostrar su información.

Estructura general del firmware:
La estructura del firmware, aunque es muy sencilla, tiene cierta complejidad.
Orden de los archivos compilados:
1.- SBOOT (Small Bootloader)
2.- PM (Power Management)
3.- AP_C (Aplicación del Procesador) C = Comprimido.
4.- Módulos (Archivos del sistema)
5.- Caché (No forma parte del firmware)

Este tipo de firmware no contiene cabecera.
El bootloader es la primer parte del firmware y su tamaño es de 64.0 KB (65536 bytes).
En seguida está el PM y tiene el mismo tamaño que el bootloader.
Posteriormente sigue el AP_C y tiene un bloque de 14336 bytes sin compresión.
En este bloque sin compresión se encuentra la tabla de particiones de los módulos.
Después del AP_C se encuentran los módulos y cada uno está separado por un padding.
El padding se conforma por cierta cantidad de bytes en 0x00, y es un múltiplo de 8 sobre el tamaño del módulo.
Algunos módulos cuentan con un padding extra, pero viene en el archivo y este se suma durante la compilación al padding calculado.
Por este motivo algunos módulos mostrarán un padding que no corresponde al múltiplo de 8 sobre su tamaño.
Los módulos tienen tres formatos de compresión: LZSS, MSCOMPRESS y MSCOMPRESS7, pero no todos están comprimidos.
Por último está el bloque de caché, y aunque no forma parte del firmware, es utilizado como almacenamiento externo.
Es la parte útil que sobra en la memoria SPI Flash tras la instalación del firmware.
En este bloque se almacenan las variables de entorno, los datos de configuración del usuario y una clave HDCP.
A esta clave no le he encontrado utilidad en este tipo de firmware y funcionan aún sin ella, que es cuando se elimina la caché.
Sin embargo, al ingresar al modo de servicio se puede ver que la busca y muestra un error si no la encuentra.
Sobre esta clave he estudiado poco porque no le encontré relevancia.

Datos clave sobre los módulos:
Anteriormente se creía que los módulos terminaban con la firma 0x00BEEF00, pero esto no es así.
Los módulos pueden terminar con cualquier tipo de bytes según su tipo, enseguida el padding y su CRC-16
Esta creencia hacia que las versiones anteriores no obtuvieran todos los módulos, ya que realizaban la búsqueda basada en esta firma.

Ultimate lee la tabla de particiones, lo cual asegura obtener todos los módulos, su posición, su tamaño, su ID, su compresor y su CRC-16
Por esto ahora es posible realizar una comprobación de integridad de cada módulo.

Con respecto a esto, explico sobre la firma 0x0D0A000000001BDE utilizada para encontrar la caché de algunos volcados.
En realidad no es una firma, sino el final del último módulo con padding y CRC-16, este módulo corresponde al archivo "FreeFontNotice.txt".
Como es un archivo de texto, tenemos qué: 0D = "\r" (Retorno de carro), 0A = "\n" (Salto de línea), 00000000 = 4 bytes de padding y 1BDE es su CRC-16
Y aunque no es una firma, sirve perfectamente como tal, ya que siempre se usa el mismo archivo al final del firmware.
Así que sumando 4 bytes (CRC-32 global) se obtiene el final del firmware o donde empieza el bloque de caché.
Este tipo de módulo final es el que caracteriza al firmware para el SoC MSD3393LU/LUM.
Los firmware del tipo TSUMVXX son en los que el último módulo puede terminar con 0x00BEEF + padding + CRC-16.

Un ejemplo sobre esto con Ultimate:
Last_Module_Example.jpg
El último módulo es el 48, y podemos ver que tiene 4 bytes de padding y un CRC-16 de 0x1BDE
En un editor hexadecimal se vería así:
EndFirmware.jpg
En azúl lo que considerábamos la firma y en rojo el CRC-32 global, el resto es caché.
Ultimate ahora solo usa firmas para encontrar cabeceras con información del firmware, tal cual y como lo hace un script de compilación MStar.

Caraterísticas funcionales:
Con Dump Repair Ultimate se podrán reparar los módulos dañados.
Reescribir los CRC-16 de los módulos de forma automática y manual.
Reparar el AP_C y reescribir el CRC-32 global.
Cuenta con varias herramientas para la reparación:
1.- Calculadora de checksums.
2.- Editor hexadecimal, interno y externo a selección.
3.- Visualizador de logotipos por miniaturas y en pantalla completa.
4.- Utilidades de compresión MStar.
5.- Calculadora de padding.
6.- Información sobre la referencia de archivo del módulo.

Notas importantes:
Como los logotipos se pueden reemplazar directamente desde la ventana principal, esta función no está presente en el visualizador.
Se reforzó el algoritmo de reparación por fuerza bruta.
Las utilidades para los módulos están en el menú contextual de la lista al hacer clic derecho sobre alguno.
La descompresión de módulos LZSS se omite cuando se selecciona descomprimir los marcados.
Esto es porque puede tardar bastante y si se cancela se omitirán los que estén en cola.
La descompresión LZSS se debe realizar por separado, ya sea por selección en la lista, o por extracción en RAW y usando el descompresor.
El padding extra es detectado automáticamente durante el reempacado de los módulos.
La referencia del archivo para cada módulo está limitada a la información del archivo BinInfo.h que se use.
Esta aplicación contiene varios, pero obviamente no corresponderán al 100% con el que se usó en la compilación del firmware.
Por lo tanto, algunos identificadores no podrán ser encontrados.

Si tienen alguna duda sobre su funcionamiento, no duden en preguntarme para orientarlos al respecto.
En breve les daré algunos ejemplos de reparación con esta aplicación.
Espero les sea de utilidad y que tengan en cuenta que esta aplicación es el resultado de un profundo estudio y muchas horas de programación.
Me esmeré por terminarla pronto y entregarla sin limitaciones, de forma gratuita, libre de virus y mucho más completa que la aplicación china.
Ah, se me olvidaba... esta aplicación sí funciona. ;)

Suerte con la reparación de sus volcados dañados.
 

Adjuntos

  • DRU.jpg
    DRU.jpg
    289.8 KB · Visitas: 24
  • Dump Repair Ultimate v1.21.09.25.7z
    1.2 MB · Visitas: 85
Amigo D@rkbytes, Muchas gracias por compartir, la aplicación, conocimientos , dedicación a la verdad, en la red no encontré nunca información al respecto ya hace unos años, encontré la aplicación, china casi nunca me funciono con todos los firmwares que decía, reparar, además de que tenia que configurar el sistema, con la configuración regional china para que me funcionara lo más estable posible, muchas felicidades por tu esfuerzo.
 
Última edición:
Actualización v2.24.09.25 de Ultimate

1.- Se corrige un bug de importancia: La extracción de SBOOT y PM estaba invertida.
2.- Se pasa la ruta corta como argumento al editor hexadecimal externo, (H x D) no soporta rutas largas).
3.- Se agrega un dígito más al nombre de los módulos, (algunas compilaciones tienen más de 100 módulos y más de 12 logotipos).
4.- Se actualiza el visor de diferencias de reempacado.
5.- Se añade importar reportes al visor de diferencias.
6.- Se optimizaron las rutinas de desempacado.
7.- Se añade un limpiador de caché con recuperación de clave HDCP.
8.- Se añade un restaurador de caché.
9.- Se comprueba no sobreescribir el respaldo de caché y clave HDCP.
10.- Ahora todos los archivos exportados se dirigen a una carpeta y sub carpetas.

Instrucciones del limpiador de caché:
Algunos volcados suelen tener el bloque de caché en 0x00 en vez de 0xFF.
Antes de limpiar la caché se debe comprobar si está en 0x00 o en 0xFF.
Para esto se debe presionar el botón HexEditorView.jpg y se abrirá el editor hexadecimal interno mostrando el final del firmware.
Como lo que sigue después del final del firmware es el bloque de caché, solo bastará ver si está en 0xFF o en 0x00.

Bloque de caché en 0x00:
Cache_0x00.jpg
Bloque de caché en 0xFF:
Cache_0xFF.jpg
Con esto podemos comprobar el tipo del bloque de caché, ya que se debe seleccionar cómo se quiere limpiar.

Esta opción solo estará disponible cuando el volcado tenga caché, ya que obviamente los firmware originales no la tienen.
Como este tipo de firmware se instala por memoria USB, el sistema no altera la caché y por ende, no se borrará la clave HDCP.
La clave HDCP se borrará cuando se limpia la caché del volcado y con este se regraba la memoria SPI Flash.
Ultimate limpiará el bloque de caché pero conservando la clave HDCP, solo si la encuentra.
Si se encuentra la guardará en la carpeta que corresponda al firmware, pero en otra, llamada "Cache".
También se creará una copia comprimida del bloque de caché para poderlo restaurar si se requiere.

Todavía no le encuentro funcionalidad a esta clave, porque aún sin ella todos los dispositivos HDMI funcionan bien.
De cualquier forma, la quise recuperar para mantener más íntegro el volcado, aún con limpieza de caché, que como ya sabemos, puede llegar a causar problemas cuando se corrompe.
 

Adjuntos

  • Arquitectura del sistema Mstar Nos.pdf
    227.6 KB · Visitas: 65
  • Dump Repair Ultimate v2.24.09.25.7z
    1.2 MB · Visitas: 69
Actualización v2.24.09.25 de Ultimate

1.- Se corrige un bug de importancia: La extracción de SBOOT y PM estaba invertida.
2.- Se pasa la ruta corta como argumento al editor hexadecimal externo, (H x D) no soporta rutas largas).
3.- Se agrega un dígito más al nombre de los módulos, (algunas compilaciones tienen más de 100 módulos y más de 12 logotipos).
4.- Se actualiza el visor de diferencias de reempacado.
5.- Se añade importar reportes al visor de diferencias.
6.- Se optimizaron las rutinas de desempacado.
7.- Se añade un limpiador de caché con recuperación de clave HDCP.
8.- Se añade un restaurador de caché.
9.- Se comprueba no sobreescribir el respaldo de caché y clave HDCP.
10.- Ahora todos los archivos exportados se dirigen a una carpeta y sub carpetas.

Instrucciones del limpiador de caché:
Algunos volcados suelen tener el bloque de caché en 0x00 en vez de 0xFF.
Antes de limpiar la caché se debe comprobar si está en 0x00 o en 0xFF.
Para esto se debe presionar el botón Ver el archivo adjunto 332247 y se abrirá el editor hexadecimal interno mostrando el final del firmware.
Como lo que sigue después del final del firmware es el bloque de caché, solo bastará ver si está en 0xFF o en 0x00.

Bloque de caché en 0x00:
Ver el archivo adjunto 332249
Bloque de caché en 0xFF:
Ver el archivo adjunto 332250
Con esto podemos comprobar el tipo del bloque de caché, ya que se debe seleccionar cómo se quiere limpiar.

Esta opción solo estará disponible cuando el volcado tenga caché, ya que obviamente los firmware originales no la tienen.
Como este tipo de firmware se instala por memoria USB, el sistema no altera la caché y por ende, no se borrará la clave HDCP.
La clave HDCP se borrará cuando se limpia la caché del volcado y con este se regraba la memoria SPI Flash.
Ultimate limpiará el bloque de caché pero conservando la clave HDCP, solo si la encuentra.
Si se encuentra la guardará en la carpeta que corresponda al firmware, pero en otra, llamada "Cache".
También se creará una copia comprimida del bloque de caché para poderlo restaurar si se requiere.

Todavía no le encuentro funcionalidad a esta clave, porque aún sin ella todos los dispositivos HDMI funcionan bien.
De cualquier forma, la quise recuperar para mantener más íntegro el volcado, aún con limpieza de caché, que como ya sabemos, puede llegar a causar problemas cuando se corrompe.
Ahora es que veo esta herramienta... ando cacharreándola... los tiempos de reparación del AP_C pasan de 12h? :oops:
 
Así es, el AP_C es el bloque más grande, y mientras más al final del bloque se encuentre el problema, más tardará.
Y como se mencionó desde la versión Engineer, solo se puede reparar un bit corrupto, si hay más no se podrá, y tampoco se pueden reparar problemas de un byte.
Comúnmente la corrupción es solo de un flip-bit y se mejoró a dos estados, lo cual refuerza la reparación.
Espera unos minutos más y notarás que el tiempo restante se va ajustando conforme el algoritmo avanza.
Algo a tener en cuenta... el mismo código de reparación en Phyton, tarda 8 veces más que en C Sharp.

Nota general: descargar nuevamente la versión 2.24.09.25, ya que se corrigió un bug al limpiar el bloque de caché por segunda vez o más.
Error: La clave HDCP no se restauraba en limpiezas posteriores.
 
Aquí tienes un ejemplo de un volcado realizado con un programador. Entiendo que debe programarse con Mstar Compressor, luego renombrarse a merge.bin, y se instalará a través del menú de servicio como una actualización oficial, ¿verdad?
 

Adjuntos

  • 32bg200 (3).zip
    4.6 MB · Visitas: 2
Entiendo que debe programarse con Mstar Compressor, luego renombrarse a merge.bin, y se instalará a través del menú de servicio como una actualización oficial, ¿verdad?
No se debe comprimir, solo eliminar el bloque de cache, pero primero debes realizar una limpieza para ver si el bloque tiene clave HDCP o se perderá.
Aunque en este tipo de firmware no le he encontrado utilidad a la clave, es mejor conservarla por si acaso.
La aplicación mostrará si se encontró la clave HDCP y realizará una copia del bloque de caché para poder restaurarla si se requiere.
Esto es porque en el bloque de caché también suelen grabarse configuraciones del panel LCD establecidas por el usuario.
Si no hay clave HDCP se puede eliminar el bloque de cache y se obtendrá un firmware para instalación por USB.
Solo tienes que eliminar ese bloque desde el final del archivo hasta el final del firmware, y esto es mostrado en "Firmware End".
Si usas el editor hexadecimal H X D, solo basta con posicionarse hasta el final del archivo, presionar las teclas Ctrl + E, e ingresar el valor obtenido como final del firmware.
Ya con el bloque seleccionado, solo basta con presionar la tecla Supr para eliminar el bloque de caché y guardar el archivo con el nombre de instalación.

Ejemplo con el respaldo que subiste...

Final encontrado del firmware en el respaldo:
FirmwareEnd.jpg
EndFirmware.jpg
Final del archivo en el respaldo:
EndFile.jpg
Selección del bloque de caché (Ctrl + E):
BlockSelection.jpg

Ya con el bloque de caché recortado se obtendrá el firmware de distribución para instalar por USB.
NoCache.jpg
 
Estimados D@rkbytes:
Muchísimas gracias por este excelente programa.
Espero con gran interés ver ejemplos de reparaciones realizadas con esta aplicación. ¡Les envío un cordial saludo desde Argelia!
 
Mejor les dejo de tarea que intenten reparar el archivo adjunto.
Tiene 3 errores; uno de ellos se puede reparar por intuición, otro a consideración y el tercero por consecuencia.
Cuando lo reparen lo suben, comentan cómo lo hicieron y les diré si fue reparado correctamente.
 

Adjuntos

  • M3393L08.S02 (dañado).rar
    2.6 MB · Visitas: 17
Mejor les dejo de tarea que intenten reparar el archivo adjunto.
Tiene 3 errores; uno de ellos se puede reparar por intuición, otro a consideración y el tercero por consecuencia.
Cuando lo reparen lo suben, comentan cómo lo hicieron y les diré si fue reparado correctamente
1. Seleccioné el módulo 2 y pulsé el botón de reparar (por cierto, por alguna razón, funcionó a la primera).

2. Seleccioné el módulo 29 y pulsé el botón de reparar.

3. Cambié el nombre del archivo a merge.bin.

¿Es posible determinar de alguna manera, a partir del archivo, para qué panel es el firmware?
 

Adjuntos

  • merge.zip
    2.6 MB · Visitas: 4
1. Seleccioné el módulo 2 y pulsé el botón de reparar (por cierto, por alguna razón, funcionó a la primera).
Reparado correctamente.
2. Seleccioné el módulo 29 y pulsé el botón de reparar.
No, este módulo se debe reparar por intuición, ya que es el logotipo y anteriormente mencioné porqué podría mostrarse como dañado.
¿Es posible determinar de alguna manera, a partir del archivo, para qué panel es el firmware?
Sí, y lo iba a agregar pero no en todos los firmware viene establecido, por eso no lo implementé.

1.- Exporta AP_C Header, abre el archivo con un editor hexadecimal.
2.- Ve a la posición 0x1132, ahí debe estar el nombre del panel LCD (20 caracteres máximo).
Si dice "PANEL_NAME" es porque no fue establecido.

Otra opción es exportar el módulo AP descomprimido, usar el editor hexadecimal interno y buscar cadenas (Search strings).
Aquí también se puede encontrar el nombre del firmware, en este caso "AY_MSD3393.BIN".
 
No, este módulo se debe reparar por intuición, ya que es el logotipo y anteriormente mencioné porqué podría mostrarse como dañado.
Propongo añadir explicaciones para estos casos a la nueva versión del programa.


Sí, y lo iba a agregar pero no en todos los firmware viene establecido, por eso no lo implementé.
Bueno, crea un elemento donde se muestre o indique que no está configurado.
De hecho, al igual que con el nombre del firmware, si es posible determinar el nombre correcto del archivo de actualización, el software debería intentar proporcionar esta información al usuario.
 
Propongo añadir explicaciones para estos casos a la nueva versión del programa.
No tiene caso, el módulo 29 en este firmware es el del logotipo, y ya mencioné que puede mostrarse como dañado porque si fue modificado con TV Logo Changer o de forma manual, el checksum no será actualizado.
Así que, aunque el módulo sea correcto, tendrá otro CRC-16, o sea, el del módulo anterior.
Al recalcular el CRC del módulo, también se tiene que recalcular el checksum global; esto lo hace aplicación automáticamente.
Bueno, crea un elemento donde se muestre o indique que no está configurado.
De hecho, al igual que con el nombre del firmware, si es posible determinar el nombre correcto del archivo de actualización, el software debería intentar proporcionar esta información al usuario.
El nombre original tampoco puede ser encontrado en todos los firmware, y versiones anteriores como la 1.9 lo buscan y lo muestran.
Comúnmente se puede utilizar "merge.bin" como lo has hecho, y de preferencia eliminar el bloque de caché si es que no tiene clave HDCP.
Sin embargo, también he mencionado que no le he encontrado utilidad a esta clave en este tipo de TV.

Aún hay cosas que pienso agregar y mejorar, pero por el momento estoy algo ocupado.
 
¡Hola a todos!

Logré reparar un volcado de memoria corrupto con esta excelente herramienta (Dump Repair Ultimate V2.24.09.25)... El módulo 001 estaba defectuoso.

Modelo: Iris-Sat 32E10

Placa base: 5800-A3M64T-1P10
Memoria Flash SPI: 25Q32CSIG
Todo el proceso solo tardó unos minutos.
 

Adjuntos

  • Module_001 (bad).jpg
    Module_001 (bad).jpg
    154.1 KB · Visitas: 14
  • Module_001 se répare.jpg
    Module_001 se répare.jpg
    141.7 KB · Visitas: 13
  • OK.jpg
    OK.jpg
    148 KB · Visitas: 15
  • Fail.jpg
    Fail.jpg
    98.5 KB · Visitas: 15
  • repaired.jpg
    repaired.jpg
    97.3 KB · Visitas: 15
Atrás
Arriba