El primer análisis que podemos realizar, es utilizar el comando file con cada una de las partes del contenido de la memoria NOR flash, de esta manera conoceremos el tipo y formato de cada archivo en cuestión.
sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$ file cfe.bin cfe.bin: data sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$
Repetimos el mismo comando con el resto de archivos.
cfe_config.bin: data hdcp: data MAC_address: data reserve: DOS executable (device driver) secure_storage: DOS executable (device driver)
Para obtener más información acerca del contenido, utilizaremos los comandos hexdump y strings.
Con hexdump realiza un volcado completo del archivo a formato hexadecimal. Mientras que strings, busca e imprime secuencias de caracteres imprimibles del contenido del archivo.
Volcar el contenido del archivo a formato hexadecimal y guardar la información en un fichero la salida.
sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$ hexdump -C cfe.bin > cfe.dump sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$
Buscar y extraer cadenas de texto y guardar en un fichero la salida.
sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$ strings -n 10 cfe.bin > cfe_strings.out sergio@N130:~/proyectos/STB7007/flash_dev/NOR_Flash$
cfe
Mediante los strings de cfe, se puede apreciar gran parte del texto de la secuencia de arranque, la petición de un reset después de cargar el splash y el punto más importante. El cifrado del bootloader mediante un certificado público.
-----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEA2PBIzgmzEKfPNYiXy1b4OLI8Ji2wpqOY3BMsgWvCKjIc9LViwi5q Al+z0vLd3LPR04Blw+lwERak6Hvt5cKNU9iVN2/VY2xZZjrK5uwbgyezFJU7cV04 W9rewsLsl/yv71W+fjhNwI0/KHxDh3ajr7nEjjmTC12wlp8+EOZGvu19jNUj2crd ycRvudeMQ5r9c64b3QYZC2JOl12FdQjmLkMiXpTUhXrCeBc6IzAeKX096jLSO3qX MOdbEu+7sdWPLW4QFnjDX4/+M0Joz3NWfMU+Lz9pYiUONA/nZ/PwTh36pgZgKAqK u2cdZi4R9zoPwLAaHJM+ommn7P/czkgI6QIDAQAB -----END RSA PUBLIC KEY-----
Descarga el certificado certificado.cer
Repetimos el proceso con cada uno de los archivos, en algunos casos la salida de strings es 0, quiere decir que no ha encontrado caracteres imprimibles.
cfe_config.bin
Cuando arranca el bootloader, identifica 5 particiones mtd11 a mtd15 que son las utilizadas por el sistema.
BOOT_IMAGE=0 PACKAGE0_NAME=Flash - Image - Usr - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE0_FILENAME=/[nandwrite]/dev/mtd12 PACKAGE1_NAME=Flash - Image - Usr - Local - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE1_FILENAME=/[nandwrite]/dev/mtd13 PACKAGE2_NAME=Flash - Image - Usr - MediaBrowser - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE2_FILENAME=/[nandwrite]/dev/mtd14 PACKAGE3_NAME=Flash - Image - Usr - MediaServer - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE3_FILENAME=/[nandwrite]/dev/mtd15 PACKAGE4_NAME=Flash - Image - RomFS - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE4_FILENAME=/[nandwrite]/dev/mtd11 PACKAGE4_EXTENT=3798205 PACKAGE_COUNT=5 FIRST_BOOT=0 PACKAGE0_VERSION=1000026 PACKAGE0_ID=Flash-Image-Usr-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r26 PACKAGE0_SIZE=3395584 PACKAGE0_EXTENT=3396792 PACKAGE1_VERSION=1000020 PACKAGE1_ID=Flash-Image-Usr-Local-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r20 PACKAGE1_SIZE=12828672 PACKAGE1_EXTENT=12829894 PACKAGE2_VERSION=4111812 PACKAGE2_ID=Flash-Image-Usr-MediaBrowser-NAND-Telefonica-Broadcom-ComtrendCT7007-4.11.18r12 PACKAGE2_SIZE=11804672 PACKAGE2_EXTENT=11805910 PACKAGE3_VERSION=1000030 PACKAGE3_ID=Flash-Image-Usr-MediaServer-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r30 PACKAGE3_SIZE=1015808 PACKAGE3_EXTENT=1017042 PACKAGE4_VERSION=2061836 PACKAGE4_ID=Flash-Image-RomFS-NAND-Telefonica-Broadcom-ComtrendCT7007-2.6.18r36 PACKAGE4_SIZE=3796297
Con el sistema iniciado y en la consola, si utilizamos el comando "cfe_config -p" aparece la misma información.
[root@stb:/] $ cfe_config -p Variable Name Value -------------------- -------------------------------------------------- BOOT_IMAGE 0 PACKAGE0_NAME Flash - Image - Usr - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE0_FILENAME /[nandwrite]/dev/mtd12 PACKAGE1_NAME Flash - Image - Usr - Local - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE1_FILENAME /[nandwrite]/dev/mtd13 PACKAGE2_NAME Flash - Image - Usr - MediaBrowser - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE2_FILENAME /[nandwrite]/dev/mtd14 PACKAGE3_NAME Flash - Image - Usr - MediaServer - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE3_FILENAME /[nandwrite]/dev/mtd15 PACKAGE4_NAME Flash - Image - RomFS - NAND - Telefonica - Broadcom - ComtrendCT7007 PACKAGE4_FILENAME /[nandwrite]/dev/mtd11 PACKAGE4_EXTENT 3798205 PACKAGE_COUNT 5 FIRST_BOOT 0 PACKAGE0_VERSION 1000026 PACKAGE0_ID Flash-Image-Usr-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r26 PACKAGE0_SIZE 3395584 PACKAGE0_EXTENT 3396792 PACKAGE1_VERSION 1000020 PACKAGE1_ID Flash-Image-Usr-Local-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r20 PACKAGE1_SIZE 12828672 PACKAGE1_EXTENT 12829894 PACKAGE2_VERSION 4111812 PACKAGE2_ID Flash-Image-Usr-MediaBrowser-NAND-Telefonica-Broadcom-ComtrendCT7007-4.11.18r12 PACKAGE2_SIZE 11804672 PACKAGE2_EXTENT 11805910 PACKAGE3_VERSION 1000030 PACKAGE3_ID Flash-Image-Usr-MediaServer-NAND-Telefonica-Broadcom-ComtrendCT7007-1.0.0r30 PACKAGE3_SIZE 1015808 PACKAGE3_EXTENT 1017042 PACKAGE4_VERSION 2061836 PACKAGE4_ID Flash-Image-RomFS-NAND-Telefonica-Broadcom-ComtrendCT7007-2.6.18r36 PACKAGE4_SIZE 3796297 [root@stb:/] $
hdcp
No aparecen strings que permitan identificar algún contenido.
MAC_address
Tiene grabada la dirección MAC Address 4 veces.
00000000 00 00 00 00 00 00 00 84 00 00 00 00 64 68 0c 99 |............dh..| 00000010 88 77 00 00 64 68 0c 99 88 77 00 00 64 68 0c 99 |.|..dh...|..dh..| * 00000040 88 77 00 00 64 68 0c 99 88 77 00 00 ff ff ff ff |.|..dh...|......| 00000050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000080 ff ff ff ff ff ff ff ff ff ff ff ff c4 c4 ff ff |................| 00000090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 0001f800
reserve
Todo el contenido esta a ff.
secure_storage
Input configuration: 544C464E 335A7A6F 71324334 61313945 32343739 Data Section Value: 000000000000000000000000544c464e335a7a6f713243346131394532343739 CRC for DS = 5d7bc48e
Se trata de una comprobación de CRC para una entrada determinada, esta entrada podría ser los diferentes CRC de cada archivo, pero no es así.
CRC de cada archivo.
72fa09c4 cfe.bin a702aa51 cfe_config.bin cf63d352 hdcp bb12aaf8 MAC_address d64cd5de reserve 0d2d27ed secure_storage
Después de este análisis, parece complicado realizar modificaciones en el bootloader, está deshabilitado el prompt del CFE y cifrado. Tal vez se pueda hacer alguna cosa con la configuración cfe_config y el comando cfe_config