Questão:
Como faço para extrair uma cópia de um firmware desconhecido de um dispositivo de hardware?
ianfuture
2014-01-23 22:55:37 UTC
view on stackexchange narkive permalink

Agradeço que seja uma pergunta ampla, mas apesar dos dias de pesquisa no Google, não encontrei uma explicação direta do princípio geral de como "capturar" ou copiar um firmware desconhecido de um hardware.

Imagino que, uma vez que você tenha feito isso, você pode começar a usar várias ferramentas para analisá-lo, mas o que quero entender é como fazer isso em primeiro lugar.

Pelo que entendi, você precisa se conectar a ele por meio de uma conexão JTAG ou UART, depois disso estou um pouco perdido.

Eu quero comprar esta ferramenta. Podemos ter mais detalhes com preço / unidade. obrigado
Dois respostas:
devttys0
2014-01-23 23:19:44 UTC
view on stackexchange narkive permalink

Como você pode suspeitar, depende muito do hardware. Em geral, você está correto, JTAG e / ou UARTs podem ser usados ​​frequentemente para obter uma cópia do firmware (baixar uma atualização de firmware do fornecedor é geralmente a maneira mais fácil, mas presumo que não seja o que você significar).

As implementações JTAG normalmente permitem que você leia / grave memória, e os chips flash são normalmente "mapeados" na memória em algum endereço predefinido (encontrar esse endereço geralmente é uma questão de pesquisar no Google, experimentar e experimentar e erro); portanto, você pode usar ferramentas como UrJTAG e OpenOCD para ler o conteúdo do flash.

UART é apenas uma porta serial, qual interface ou opções ele fornece (se houver) depende inteiramente do desenvolvedor que criou o sistema; a maioria dos bootloaders (por exemplo, U-Boot) permitem que você leia / grave flash / memória e irá despejar o hex ASCII em sua janela de terminal. Em seguida, você precisaria analisar o hexdump e convertê-lo em valores binários reais. Novamente, YMMV e pode não haver maneira de despejar memória ou flash através do UART.

Outros dispositivos podem ter outros mecanismos que fornecem funcionalidade semelhante; por exemplo, os microcontroladores PIC da Microchip usam interfaces ICSP (In Circuit Serial Programming) para ler, gravar e depurar firmware. Essas interfaces são geralmente proprietárias e podem ou não ser documentadas (Microchip's é bem conhecido).

Os fornecedores podem tomar medidas para proteger ou desativar interfaces de depuração, como JTAG, UART e ICSP, mas muitas vezes você pode descarte o chip flash diretamente (geralmente é mais rápido do que JTAG / UART, mas pode exigir um pouco de / solda). Para dispositivos como microcontroladores que têm o chip flash embutido (ou seja, o chip flash não é exposto a você), pode ser necessário recorrer a técnicas mais avançadas para derrotar essas proteções contra cópia.

Pessoalmente, como não lido muito com sistemas baseados em microcontroladores, despejar o chip flash diretamente geralmente é a minha escolha para obter uma cópia do firmware do dispositivo.

+1 Mas * realmente * depende do hardware. Tente pesquisar na web por um dispositivo que estava - com especificações de design e tudo - disponível sob NDA, mas não está mais. Falando por experiência própria.
Jason Geffner
2014-01-23 23:13:12 UTC
view on stackexchange narkive permalink

Extrair o conteúdo de um chip de hardware é conhecido como " snarf ". (Esse termo pode ajudar em suas pesquisas no Google.)

Para capturar o conteúdo de um chip, você precisa de um leitor / programador de ROM, como um dos dispositivos de http: // www. needhams.com/programmers.htm

ROM programmer



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...