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 paddind.
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: 14
  • Dump Repair Ultimate v1.21.09.25.7z
    1.2 MB · Visitas: 52
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: 35
  • Dump Repair Ultimate v2.24.09.25.7z
    1.2 MB · Visitas: 16
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.
 
Atrás
Arriba