Jump to content

Primeiros passos com exemplo.


ncaio

Recommended Posts

  • Do Zero Ao Um - Instructors
Posted

[- Primeiros passos com exemplo -]

Este tópico tem como finalidade esclarecer alguns pontos sobre hardware hacking. Se você é um hobbyist como eu, muitas das vezes, pelo o fato da informalidade, não temos a preocupação de explorar uma vulnerabilidade, quebrar alguma proteção, fazer auditoria ou engenharia reversa. Geralmente alteramos um hardware para uma necessidade particular ou apenas por curiosidade. Mas isso não significar fazer de qualquer forma, sem controle e sem motivação. Vale também salientar que é comum não ter progresso por falta da ferramenta certa ou de conhecimento.

Neste tópico iremos discutir sobre passos a serem seguidos, tanto por iniciantes, como por intermediários. Assim como profissionais e amadores. Claro, contribua e compartilhe o seu conhecimento, por favor.

1 - Escolher;
2 - Motivação!?;       
3 - Catalogar;
4 - Identificar pontos;    
5 - Qual caminho devo seguir ?.

Escolher

A escolha é motivada por vários fatores, assim como mencionado anteriormente. E claro, em alguns casos não temos escolhas, o hardware chega a sua mão via propósitos profissional, pessoal ou aquele pedido amigo/familiar. Se você é iniciante e pode escolher por onde começar, inicie com o básico. Dê preferência a dispositivos que estão em seu campo de conhecimento, um access point, um controle remoto do portão, controle da TV e etc. 

Motivação!?

Se você escolheu um hardware aleatório para estudar/observar/explorar, provavelmente você não tem um objetivo especifico. Neste caso, a sua motivação é explorar e progredir. Se na escolha do hardware você já identificou pontos de mudança, como por exemplo: Mudar a cor do led que representa o power do seu access point que é vermelho para a cor azul. Essa será a sua motivação, pelo menos inicialmente. 

Catalogar

É muito importante conhecer o seu alvo. Neste ponto é onde identificamos os componentes eletrônicos, conectores e etc. Muitas vezes precisamos abrir, desmontar equipamentos e fotografar. Com relação a placas e componentes eletrônicos, tirar fotografias te permitirá identificar modelos e esquemas com bastante facilidade. E claro, é uma fonte de consulta rápida. Inicialmente, comece a catalogar as informações mais acessíveis e disponibilizadas pelo fabricante, quando possível.

Identificar pontos

Depois de coletar informações importantes do seu hardware, comece a identificar pontos promissores. Tais como: 

Qual é o chip principal
Conexões seriais
Jtag
I/O
Memória
E etc

Procure se aprofundar em cada item, datasheet é a palavra principal neste passo. 

Qual caminho devo seguir ?

É hora de expandir a árvore. Você tá na base da raiz, e é aqui que as portas abrem, ou não. Se você não tinha uma motivação e chegou até aqui, é bem provável que encontrou um motivo. A dica é universal, comece pelo lado mais fácil, que você encontrou mais informações, que você tem as ferramentas corretas para seguir em frente. Geralmente, voltamos a passos anteriores para conseguir avançar por aqui.

UM EXEMPLO PRÁTICO

1 - Escolher

Vamos iniciar com algo bem aleatório. Simplesmente sai olhando o que tinha disponível e escolhi um console emulador que tenho guardado.

2 - Motivação!?;

Minha motivação é utilizar este dispositivo para exemplificar este tópico.

3 - Catalogar

Vamos dividir em sub tópicos.

Informações básicos do equipamento

Uma breve descrição: Dynavision CyberGame é um console que emula consoles, como: NES, SNES, MegaDrive e outras plataformas. É capaz de reproduzir vídeos e músicas. 
Tipo do dispositivo: Emulador 
Fabricante: Dynavision 
Modelo: CyberGame 
Versão: NA

Destaques do Hardware

CPU:
PLACA MÃE:
MEMÓRIA FLASH:
SDRAM:
NETWORK:
------------X-----------------X-------------X-------------X------------X--------------X-------------
INTERFACE SERIAL:
JTAG:
FIRMWARE:
BOOT:
FOTOS:
REFERÊNCIAS:

Qual é a cara do device ?

Fotografe o equipamento antes de desmontar. Alias, fotografar é um processo continuo. Para a sua organização, crie um diretório para guardá-las. Daqui para frente, irei adicionar imagens relevantes ao processo. O seu celular pode te auxiliar neste processo. 

Visão externa

Não apresenta acesso a parafusos de fixação. É necessário remover as abas laterais para ter acesso aos 2 parafusos de fixação.

IMG_20191007_152137.thumb.jpg.088a27e78e8f748acad079598496e7eb.jpg

IMG_20191007_152206.thumb.jpg.24d774c8a945d4f79d03e53569b3ce84.jpg

Visão interna geral

Existem três partes. A placa principal e 2 periféricas. Uma periférica com RCA e alimentação, outra com o botão RESET POWER e o sensor do controle remoto.

IMG_20190929_111247.thumb.jpg.5109b0d71d13a8f7e62dd38009c3711e.jpg

Visão da placa principal - Face Superior

Já podemos identificar visualmente alguns componentes e conexões interessantes. Identificar  o  fabricante da placa é importante para pesquisar por modelo e ficha técnica, por exemplo. Não neste caso. Eu particularmente não obtive sucesso na minha busca. E para dificultar ainda mais, temos o CPU descaracterizado, sem identificação. 

board-front.thumb.jpg.01ed73714b5a767c592bae9b09dd2986.jpg

Visão da placa principal - Face Inferior

Temos o modelo e fabricante da placa e um chip de memória da SAMSUNG.

IMG_20191007_153112_(1).thumb.jpg.3d3ac2579aca4fa96a2b7eb7f8702d86.jpg

 

Postos de Destaque

Como mencionado anteriormente, algumas informações foram "ofuscadas" e outras não. Vamos pegar cada um destes postos e discutir sobre eles.

CPU - CHIP PRINCIPAL!?

Temos um suposto chip principal, sem informações relevantes impressas nele. Até o momento,  não sabemos que chip é este e sua função. Mas deduzimos, pela justa posição na placa e o enorme  número de conexões/trilhas conectadas ao chip, que temos aqui um forte indicio para deduzir isso.

CPU.thumb.png.32a97ad33ee0bee9cee9b72581e6cfdd.png

Um chip de memória

Instalado na face inferior da placa.

CI-02.thumb.png.d75cf931b1a87188d5c93cda4a952876.png

 

Interface Serial !?

Temos aqui um suposto UART serial. Para melhor entendimento, consulte o tópico: 

CI-03.thumb.png.564e371e3e17e1829dac7ad638755aa0.png

 

Identificar esta interface UART fez toda a diferença no processo de identificação e catalogação. Foi possível acompanhar o processo de boot e salvar em um arquivo para visualização posterior. Segue em anexo o log.

cutecom.log

Vamos observar e tomar nota em alguns trechos do log. Iniciando pelas primeiras linhas. Temos informações relevantes a criação da ROM e informações sobre a memória NAND que conseguimos visualizar diretamente no chip.

ü+++MMP RomCode ver 8000.4.0 2009/02/18
pwrc_cfg=a0000006
vic1_rawSts=00000020
keyscan4=00001980
iotraps=00000000
Read Id : ec-dc-c1-15-54-ec-dc-c1-15-54
NAND_TYPE: SAMSUNG
u16PageNoPerBlk               :64
u16PyldLen                    :2048
u16TotalBlkNo                 :4096
ecc_mode                      :0
Start to read DRAM_Init code from flash...
Enter Load_PF
u16PageNoPerBlk               :64
u16PageSize                   :2112
u16PyldLen                    :2048
u16TotalBlkNo                 :4096
ecc_mode                      :0

Já entre as linhas  235-260, temos informações sobre o bootstrap: Red Hat Embedded Debug and Bootstrap (RedBoot),  podemos observar a possibilidade de interação com o RedBoot  == Executing boot script in 0.010 seconds - enter ^C to abort. E informações sobre a imagem de boot.

RedBoot(tm) bootstrap and debug environment [ROM]
^MNon-certified release, version v2_0_28 - built 17:41:15, Apr 27 2010

^MPlatform: SUNPLUS_MMP (ARM 9) 
^MCopyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
^MCopyright (C) 2003, 2004, eCosCentric Limited

^MCopyright (C) 2008, Sunplusmm v1.0.0.3

^MRAM: 0x00000000-0x00f00000, [0x00200000-0x00f00000] available
^MLoad the kernel file: /Rom/image/8000_mmi.rap
^MLoad image from romfs!
^MFound the image entry point: 0x280040
^Mg_Cfg_s.redbootCfg:0xc0000004
^M== Executing boot script in 0.010 seconds - enter ^C to abort
^MRedBoot> go -c 0x280040
^Mg_Cfg_s.redbootCfg:0xc0000004
^M+do_go
^Mimage sel: 0, image_sel_set: 0
^Mrmvb enable!
^MMask interrupts on all channels
^MID-CACHE sync and invalidate
^Mset up a temporary context. workspace_end=0x00f00000, entry=0x00280040
^Mswitch context to trampoline. workspace_end=0x00efffb0

Informações como : Load the kernel file: /Rom/image/8000_mmi.rap, Platform: SUNPLUS_MMP (ARM 9) e o datasheet, chegamos a conclusão que estamos que estamos diante de um chip/ic SPMP8000. 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...