Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   Engel RS4800S HD Mini (http://foros.zackyfiles.com/forumdisplay.php?f=546)
-   -   Editor de firmware ssu para desarrollar (http://foros.zackyfiles.com/showthread.php?t=691160)

enriquebutra 30/07/2016 20:43

[QUOTE=vebp;4785984]Tutorial com o básico para criar suas transformações com firmware novatek.
[URL="http://mundoaz.com/forum/viewtopic.php?f=552&t=92889"]http://mundoaz.com/forum/viewtopic.php?f=552&t=92889[/URL][/QUOTE]
Muy buen trabajo vamos por buen camino.
Saludos.

enriquebutra 30/07/2016 20:47

He modificado los bookmaks y añadido algún .bat
Me volvió loco revertir el proceso y era porque la aplicación post_link, la que suma los ficheros le restaba 4 bytes 00 00 00 00 a los .ro
Pero bueno ya podemos mofificar la app principal y revertirlo.


[url]https://drive.google.com/file/d/0Bw15dXeVe2Z2QkVZc0RZRW10QmM/view?usp=sharing[/url]

vebp 02/08/2016 01:09

Buenas noches, estos códigos están muertos. Lo que he hecho es trabajar con el firmware actual, modificar y eliminar los bloqueos que impiden que otros equipos de prensa. Pero para que funionar tiene que ser compatible con el hardware, o incluso la eliminación de los bloqueos que tienen fecha de caducidad. En el más que no tenemos mucho que hacer por ahora.

enriquebutra 05/08/2016 00:04

Resulta complejo hacer un resumen para extraer la aplicación principal y luego recontruirla.
Pero vamos a intentarlo...
Aunque resulte un poco pesado vamos a repasar la estructura de los ficheros .ssu

olvidandonos de todos los datos que no afecten a la aplicación principal.
Nos encontramos 3 posibilidades principales, que son las que todos hemos visto:

all --> Todo el contenido de la FLASH (*.all.ssu).
db --> Solo la base de datos,canales, satelites.. (*.db.ssu).
app --> Solo la aplicación (*.app.ssu)

Los tres tipos tienen un encabezado común de 80 bytes del cual podemos extraer de que tipo

es.

Vender (16 bytes)
Chip (16 bytes)
ProductModel (16 bytes)
AppVersion (16 bytes)
DataLenght (4 bytes)(Al reves si little endian, tamaño del fichero completo)
Start Address (4 bytes)(Al reves si little endian, inicio posición en memoria flash)
DataOffset= (4 bytes)
FileType (2 bytes)
00 00 Boot
01 00 App1 (Es la que buscamos modificar sin actualizar el boot)
02 00 Second Application OTA
03 00 Private Data
04 00 Db
05 00 Backup Db
06 00 Share Bank
07 00 All (Es la que mas nos encontramos, que nos interesa sacar App1)
08 00 Customize
0A 00 DefDb
DbVersion (1 byte)
Endian=81 (1/2 byte) (0 big,8 little endian)
Type (1/2 byte) (0 dvb-s 1 dvb-t 2 dvb-c)
Fichero App1 o All o db, contiene el fichero que realmente va a transferir a la memoria.
Crc (4 bytes) Crc32 custom polinomial 04C11DB7

Esto lo conseguimos con:
ssu2bin e a1 navi_s_326su.flash.gz.gro.stp ssu.txt navi_s_326su.app1.gro.ssu
Donde ssu.txt para engel RS4800S
Novatek
658877
0D0609
0x0000
0x0000
1
2
3
37363
65536
0
a1
0
t


Bloque App1 Chunk, es aplicación principal, siempre va en la posición 0x10000 de la flash.
Como teniamos un header constante lo podemos ver en la posición 0x10050 de los ficheros

all.ssu o bien en la 0x50 de los app.ssu.

Esta App1 o aplicación principal tiene el siguiente encabezado:
A partir de ahora le llamaremos app stamped o navi_s_326su.flash.gz.gro.stp

MagicCode = 0x31415926 (1AY&)
Header=_FEB, _APU, __B1, __BM, DRUN, APP1, APP2, FRAW, DRAW
ModelID=NT78
Version=0x00010001
Attribute=0xaa5500xx (xx=00(none),xx=01(zip data), xx=02(encryption))
SectionLen (4 bytes) (La longitud del fichero)
LoadDramAddr=0x802B0000 (This address get form rom vector address)
EntryPointAddr=0x802B01BC (This address get form reset vector address)
TargetAddr=0x00010000 (En nuestro caso APP1 siempre 0x10000)
FileApp agrupada o group, lo llamaremos navi_s_326su.dram.bin.gz.gro
Crc (4bytes)

Lo obtenemos con:
mk_stamp310 navi_s_326su.dram.bin.gz.gro navi_s_326su.flash.gz.gro.stp "app1" NT78 65537 1

\0x802b0000 \0x802b01bc \0x00010000


FileApp agrupada o group es la suma de dos o tres ficheros con post_link, suma un fichero

comprimido .gz; que llamaremos navi_s_326su.dram.bin.gz mas uno o varios ficheros .ro,las

versiones mas antiguas solo tenían un fichero AudioDSP.ro y las mas modernas se añade

graphdat.ro, que son las bibliotecas multimedia y los graficos del menú respectivamente.
Esta es la aplicación mas díficil de explicar, vamos allá con el header:

"GzRo100a"
numero de ficheros (4 bytes)
"Gz" 0x475A0000 (4bytes)
constante 0x0000000000000000(8 bytes)
tamaño fichero .gz lo llamaremos navi_s_326su.dram.bin.gz( 4 bytes)
constante 0x00000000 (4 bytes)

En el caso de 3 ficheros navi_s_326su.dram.bin.gz + AudioDSP.ro + graphdat.ro

Encabezado fichero AudioDSP.ro (16 bytes)
Posición inicio fichero AudioDSP.ro (4 bytes)
Encabezado fichero graphdat.ro (16 bytes)
Posición inicio fichero graphdat.ro (4bytes)
fichero navi_s_326su.dram.bin.gz
fichero AudioDSP.ro
fichero graphdat.ro

En el caso del firmware antiguo con dos ficheros, podemos seguir el mismo patrón pero sin el

fichero graphdat.ro

En ambos casos para luego recomponer todo, seguiremos el siguiente procedimiento:
Header fichero .ro + 0x00000000 + fichero .ro ; esto es debido a que la aplicación post_link

elimina extrañamente esos 4 bytes, que luego nos harán falta para recomponer la estructura.


Lo obtenemos con:
post_link navi_s_326.gz AudioDSP.ro graphdat.ro
Bueno ya podemos separar los ficheros.


Los ficheros .ro son ficheros que se les ha añadido un encabezado para definirlos y siguen

el siguiente patrón en su estructura.

Name (8 bytes)
Crc (4 bytes)
DataLenght (4 bytes)
Constante 0x00000000 (4 bytes)
Fichero

Lo obtenemos con:
make_ro AudioDSP.gz AudioDSP.ro



No centraremos en el .gz ; navi_s_326su.dram.bin.gz
En los firmware antiguos, simplemente está comprimida con la aplicación zip2006
Para ello lo descomprimimos con:
zip2006 d navi_s_326su.dram.bin.gz navi_s_326su.dram.bin

En los firmware mas modernos la cosa se complica ya que lo cifran con la aplicación filex.
Revertirlo en sencillo con Hexworkshop, seleccionamos de la dirección 0x10000 a 0xFFFFF le

damos a tools, operations,xor y ponemos 32bit unasigned long, hex,selection y big endian.
Ponemos la cadena BC873BD6 y ok.Esto nos descifrará este segmento.
A continuación repetimos la operación para el segmento 0x100000 hasta el final del fichero.
Lo guardaremos como navi_s_326su.dram.bin.gz y pasamos a descomprimirlo como se dijo en el

punto anterior.
El proceso a ejecutar para cifrarlo y comprimirlo sería:
zip2006 e navi_s_326su.dram.bin navi_s_326su.dram.bin.gz
move navi_s_326su.dram.bin.gz test1
filex.exe test1 navi_s_326su.dram.bin.gz

Con el fichero descomprimido navi_s_326su.dram.bin podemos ver los servidores, claves,

caducidad de conexiones,etc.
Es aquí donde podemos modificar y revertir el proceso.
El objetivo es modificar el app.ssu solo y nunca cargar el boot de otro firmware que no sea

el nuestro, ya que complica mucho la recuperación o deja a nuestro receptor como un

ladrillo.
El proceso para reconstruirlo sería:

zip2006 e navi_s_326su.dram.bin navi_s_326su.dram.bin.gz
move navi_s_326su.dram.bin.gz test1
filex.exe test1 navi_s_326su.dram.bin.gz
post_link navi_s_326su.dram.bin.gz AudioDSP.ro graphdat16_sen5_hd.txt.ro
mk_stamp310 navi_s_326su.dram.bin.gz.gro navi_s_326su.flash.gz.gro.stp "app1" NT78320 65537

1 0x802b0000 0x802b01bc 0x10000

ssu2bin e a1 navi_s_326su.flash.gz.gro.stp ssu.txt navi_s_326su.app1.gro.ssu

Gracias a barrigaverde, vebp y exterminator.
Enlace bookmaks actualizados:
[url]https://drive.google.com/file/d/0Bw15dXeVe2Z2QkVZc0RZRW10QmM/view?usp=sharing[/url]

antoniofr 10/08/2016 18:23

Hola.

Antes de nada, perdonad si esto que voy a decir no corresponde aquí, pero me ha parecido que sí.

La idea de poder modificar el firmware de estos decodificadores entiendo que es para cambiar los servidores IKS/TIKS a los que se conecta el deco. La idea sería utilizar otros, como los del Engel 8100, que actualmente están activos.

¿Estoy en lo correcto?

Si es así, podría existir otra solución al margen de la de modificar el firmware (que sería la mejor), que consistiría en aplicar NAT para utilizar los servidores del 8100 directamente.

La idea sería utilizar un sniffer para descubrir los servidores (serán varios, obviamente) que utiliza el 8100 y a continuación utilizar un dispositivo que haga funciones de enrutamiento (estoy pensando en una Raspberry Pi) para hacer un NAT que modifique los paquetes de datos, de modo que los que vayan destinados a las IPs de los servidores que utiliza el Engel Mini (ya las tenemos, puesto se dispone del código fuente del firmware) sean redirigidos a las IPs de los servidores que utiliza el 8100.

No sé si esto sería viable, ni si se utiliza algún tipo de autenticación u otros mecanismos con el protocolo IKS/TIKS. Tan solo es una idea que se me ocurrió, y la planteo aquí para debatirla y, en caso de que sea posible, madurarla e intentar llevarla a la práctica.

Espero vuestros comentarios.

antoniofr 11/08/2016 10:11

Vale, entonces el fin es el mismo. Claramente la opción de modificar el firm sería genial, aunque parece más complicada y peligrosa.

Yo podría trastear un poco con mi idea, pero necesitaría que alguien que tenga el 8100 o el Talcom 500 HD use un sniffer (Wireshark, por ejemplo) y me pase por privado algunos de los servidores que contestan.

barrigaverde 11/08/2016 12:38

Hola a todos ha aparecido u de o nuevo del cualquier no he pillado el firmware y me gustaría si podéis saber ha que cpu pertenece eze si novateck, ali,su plus,etc se llama hd350s me ha parecidomini mini del todo y me recuerda al couldn3 de novatek
Por si hay suerte un saludo

vebp 11/08/2016 15:30

Hola a todos, he trabajado con cierto éxito con el firmware. exeplo azgold todo en SKS con el firmware original, clodhdn3 añadió el firmware de otro modelo. Homebox SKS firmware original, ente otros. Todavía no puedo ajustar el IKS firmware, pero es posible hacer esto. El firmware 2015 los protocolos IKS son diferente de la actual, estoy analizando y comparando con la corriente. Y no garantizados para trabajar, pero como me he fijado los SKS esperan hacer lo mismo con los sistemas de conocimientos indígenas.
Gracias.

antoniofr 12/08/2016 10:19

Cita:

Iniciado por kkqlo (Mensaje 4787292)
Hola antoniofr yo tengo el Talcom 500HD, si me explicas los pasos a seguir yo puedo hacer pruebas....saludos.

Tengo que probarlo aún, pero habría que tener en la misma red el deco y el pc, y a continuación usar el wireshark para capturar paquetes en modo promíscuo. Lo siguiente sería mirar el tráfico UDP, para determinar los servidores a los que intenta conectarse.

No tengo claro si funciona teniendo los hosts conectados por cable o habría que conectarlos por wifi. Ahora estoy fuera, pero esta semana cuando esté en casa lo pruebo y te digo mejor.

cefu2 19/08/2016 17:07

[QUOTE=vebp;4787310]Hola a todos, he trabajado con cierto éxito con el firmware. exeplo azgold todo en SKS con el firmware original, clodhdn3 añadió el firmware de otro modelo. Homebox SKS firmware original, ente otros. Todavía no puedo ajustar el IKS firmware, pero es posible hacer esto. El firmware 2015 los protocolos IKS son diferente de la actual, estoy analizando y comparando con la corriente. Y no garantizados para trabajar, pero como me he fijado los SKS esperan hacer lo mismo con los sistemas de conocimientos indígenas.
Gracias.[/QUOTE]


vebp, sabes si existe algún modelo compatible con cloud que tenga iks vigente? Entiendo que la versión que circuló la armaste tu, pero en base a un deco que no era 100% compatible por el tema del voltaje del lnb. Me gustaría intentar trastear poniendo las direcciones iks al firm original del cloud. Como lo ves?

barrigaverde 19/08/2016 19:30

igual de los ficheros actuales de los sunplus se puede sacar algo buscando en 5d000080 comienzo de las partes hasta el primero lo considero boot puede que incluya algo mas pero en las partes restantes igual teneis lo que se necesit a tu enriq----- sabes como buscar pues lo utilizas he puesto mas atras uno reciente y mini un saludo para trastear el revez q11 es mas facil podeis visualizarlo y asi con ellos en conjunto con esto conseguir vuestro objetivo

avitorgo 26/09/2016 12:24

me gustaría hablar por privado alguien que entienda, es importante

antoniofr 08/02/2018 21:08

----------


La franja horaria es GMT +2. Ahora son las 00:09.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate