Mudanças entre as edições de "GC150ATA"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
(Criou página com '== descrição geral == Display VGA SYS-GC150ATA == CPU == MYSON mtv312mv64 - variante de 8051 Datasheet em: www.telemaster.ru/minitv/pdf/MTV312MV64.pdf == chip de vídeo ...')
 
Linha 2: Linha 2:
 
Display VGA SYS-GC150ATA
 
Display VGA SYS-GC150ATA
   
== CPU ==
+
== Principais componentes ==
  +
=== CPU ===
   
 
MYSON mtv312mv64 - variante de 8051
 
MYSON mtv312mv64 - variante de 8051
Linha 8: Linha 9:
 
Datasheet em: www.telemaster.ru/minitv/pdf/MTV312MV64.pdf
 
Datasheet em: www.telemaster.ru/minitv/pdf/MTV312MV64.pdf
   
== chip de vídeo ==
+
=== chip de vídeo ===
 
Controlador GENESIS gmZAN1
 
Controlador GENESIS gmZAN1
   
 
Datasheet em: http://www.datasheetarchive.com/dlmain/Datasheets-312/182051.pdf
 
Datasheet em: http://www.datasheetarchive.com/dlmain/Datasheets-312/182051.pdf
   
== EPROM ==
+
=== EPROM ===
 
Memória EPROM serial (I2C) ATMEL 24C21
 
Memória EPROM serial (I2C) ATMEL 24C21
   
 
Datasheet em: http://www.datasheetcatalog.com/datasheets_pdf/2/4/C/2/24C21.shtml
 
Datasheet em: http://www.datasheetcatalog.com/datasheets_pdf/2/4/C/2/24C21.shtml
  +
  +
== Estratégias de Engenharia Reversa ==
  +
  +
=== Dump de fw ===
  +
  +
==== Via I2C ====
  +
  +
A placa mãe tem um conector de 4 vias com alabel P303. Os sinais são:
  +
  +
* VCC (5V)
  +
* SCL
  +
* SDA
  +
* GND
  +
  +
As duas vias do barramento '''i²c''' estão ligadas aos pinos HSCL e HSDA do 8051. O datasheet descreve o procedimento para apagar a memória flash por meio da interface I2C, e diz que o slave address é especificado pelo firmware por meio de uma escrita ao SFR (special funciona register) ISPSLV (In-System Programming Slave Address)
  +
  +
<quote>
  +
After Power On/Reset, The MTV312M runs the original Program Code. Once the S/W detects an ISP
  +
request (by key or IIC), S/W can accept the request following the steps below:
  +
  +
# Clear watchdog to prevent reset during ISP period.
  +
# Disable all interrupt to prevent CPU wake-up.
  +
# Write IIC address of ISP slave to ISPSLV for communication.
  +
# Write 93h to ISP enable register (ISPEN) to enable ISP.
  +
# Enter 8051 idle mode.
  +
</quote>
  +
  +
Como não temos acesso ao firmware (ainda) não temos como saber qual é o endereço usado. Então resolvi tentar todos! De acordo com a descrição do protocolo de programação da Flash, são 6 bits de endereços possíveis (apesar de i2c permitir 7 bits, um deles - o menos significativo - é usado pra indicar se é acesso de comando ou acesso de dado).
  +
  +
===== Usando o BusPirate =====
  +
Preciso achar o meu que eu perdi ou comprar um novo.
  +
  +
O legal é que dá pra fazer uns scripts pra automatizar o sniffer...
  +
  +
===== Usando o USBTinyISP =====
  +
Precisaria modificar o dispositivo pra se comunicar por i2c também. Ele é projetado pra falar SPI
  +
  +
===== Usando a porta VGA =====
  +
Isso é genial. Tentei, mas ainda não rolou.
  +
  +
===== Usando algum outro bridge USB->I2C =====
  +
Preciso comprar um desses pra tentar.
  +
  +
==== Via Soquete PLCC ====
  +
  +
Desoldar o chip, conectá-lo a um conversor PLCC→DIP e utilizar o TL866CS para fazer o dump.
  +
  +
'''CONTRAS:''' Procedimento invasivo. Ter que soldar um soquete no lugar, e depois ter que remover/reinserir toda vez que for atualizar o firmware. Pode danificar o componente pelo esforço mecânico.

Edição das 23h38min de 8 de julho de 2014

descrição geral

Display VGA SYS-GC150ATA

Principais componentes

CPU

MYSON mtv312mv64 - variante de 8051

Datasheet em: www.telemaster.ru/minitv/pdf/MTV312MV64.pdf

chip de vídeo

Controlador GENESIS gmZAN1

Datasheet em: http://www.datasheetarchive.com/dlmain/Datasheets-312/182051.pdf

EPROM

Memória EPROM serial (I2C) ATMEL 24C21

Datasheet em: http://www.datasheetcatalog.com/datasheets_pdf/2/4/C/2/24C21.shtml

Estratégias de Engenharia Reversa

Dump de fw

Via I2C

A placa mãe tem um conector de 4 vias com alabel P303. Os sinais são:

  • VCC (5V)
  • SCL
  • SDA
  • GND

As duas vias do barramento i²c estão ligadas aos pinos HSCL e HSDA do 8051. O datasheet descreve o procedimento para apagar a memória flash por meio da interface I2C, e diz que o slave address é especificado pelo firmware por meio de uma escrita ao SFR (special funciona register) ISPSLV (In-System Programming Slave Address)

<quote> After Power On/Reset, The MTV312M runs the original Program Code. Once the S/W detects an ISP request (by key or IIC), S/W can accept the request following the steps below:

  1. Clear watchdog to prevent reset during ISP period.
  2. Disable all interrupt to prevent CPU wake-up.
  3. Write IIC address of ISP slave to ISPSLV for communication.
  4. Write 93h to ISP enable register (ISPEN) to enable ISP.
  5. Enter 8051 idle mode.

</quote>

Como não temos acesso ao firmware (ainda) não temos como saber qual é o endereço usado. Então resolvi tentar todos! De acordo com a descrição do protocolo de programação da Flash, são 6 bits de endereços possíveis (apesar de i2c permitir 7 bits, um deles - o menos significativo - é usado pra indicar se é acesso de comando ou acesso de dado).

Usando o BusPirate

Preciso achar o meu que eu perdi ou comprar um novo.

O legal é que dá pra fazer uns scripts pra automatizar o sniffer...

Usando o USBTinyISP

Precisaria modificar o dispositivo pra se comunicar por i2c também. Ele é projetado pra falar SPI

Usando a porta VGA

Isso é genial. Tentei, mas ainda não rolou.

Usando algum outro bridge USB->I2C

Preciso comprar um desses pra tentar.

Via Soquete PLCC

Desoldar o chip, conectá-lo a um conversor PLCC→DIP e utilizar o TL866CS para fazer o dump.

CONTRAS: Procedimento invasivo. Ter que soldar um soquete no lugar, e depois ter que remover/reinserir toda vez que for atualizar o firmware. Pode danificar o componente pelo esforço mecânico.