Ir para conteúdo
  • Cadastre-se
fabioaraujo

Introdução para iniciantes sobre firmware, SA, etc

Avalie este tópico:

Posts em destaque

fabioaraujo    22

  Há alguns dias, gostaria de iniciar um projeto de modificação do código firmware do HDD.  Após googlear por um tempo, eu rapidamente aprendi que as informações técnicas sobre este assunto são muito escassas. Eu encontrei este site e fórum. Ele contém algumas informações, mas ainda assim, também este lugar está embaralhado em um monte de névoa. É claro, eu posso entender o porquê: as informações são escassas e você precisa de um monte de trabalho, gastam uma grande quantidade de tempo para aprender coisas novas. No entanto, me incomoda de certa forma, todo mundo tenha que passar por um monte de trabalho e dificuldade para "re-inventar" a roda e, em seguida, deixando que outros se esforçam muito para reinventar a roda NOVAMENTE. É quase como um indivíduo que abusa de uma criança, que foi abusado pelo seu pais e agora está  provocando a mesma dor que eles viveram em seus filhos.

 

Portanto, em outras palavras, aqui está o resumo das coisas que aprendi.  Se você for um completo novato, agora você pode obter este conhecimento "newbie" em poucos minutos, em vez de gastar alguns dias completos de pesquisa, tal como eu,

Então aproveite!

 

 

* NEWBIE HDD INFO*

 

  Discos rígidos modernos possuem uma área que contem a informação de que a CPU na HDD logicboard usa para operar a unidade.  Está área é chamada de área de sistema. Esta área contem por exemplo o drive "microcode"(apelido "firmware"), HDD Configuração de tabelas, Setor de tabelas com defeito, Informação SMART, Info de segurança(senhas de drive, etc.), Info de ID de Disco(serial nr, etc.) e mais.  Estas categorias de informação são chamados "módulos". Portanto, a SA contém um módulo para o código do firmware, um módulo para a info SMART etc.

 

  O SA é armazenado em "cilindros negativos" da Unidade de disco rígido e, por isso, não é acessível a comandos de leitura normal.  No entanto, a área pode ser acessada com outros comandos ATA. Um exemplo de um (mais ou menos) comando "standard"  ATA que pode acessar informações sobre a SA é o comando 'download microcode" ATA, que pode ser usado para atualizar as informações no módulo de código do firmware. No entanto, a maioria dos comandos que podem ser usados para acessar o SA são específicos do fornecedor. Uma vez que os fornecedores (obviamente) não querem que os usuários façam bagunça com a SA, estes comandos não são geralmente públicos. No entanto, estes comandos podem ser deduzidos, por exemplo, com engenharia reversa do código do firmware propriamente dito.

 

  Essa engenharia reversa tem sido feita e levou ao desenvolvimento de ferramentas que podem emitir esses (específicos do fornecedor) comandos ATA e pode ler/gravar quase todos os sectores da SA.  Um exemplo de tal ferramenta é PC3000 ( "PC3K' ). Uma ferramenta como esta contém tabelas para o modelo de HDD, contendo estes comandos ATA específicos do fornecedor e também tabelas com os números dos setores em que os diferentes módulos são armazenados, também para o modelo de HDD. Numeros de Setores da SA são contados em UBA's. Por exemplo, um especifico HDD pode usar UBA 4 para guardar o modulo "ID DO DISCO ", onde outro modelo de  HDD pode usar um outro setor para este módulo.

 

  Assim, em suma, para a criação de uma ferramenta que possa ler/escrever dados no SA, você precisa de:

 

  • A) saber (e compreender) o (fornecedor-) especifico dos comandos ATA que podem ser usados para acessar essa área e
  • B) saber em que setores UBA os módulos específicos são armazenados.

 

   

  Se o drive contem dados danificados no SA, por exemplo, no código do modulo firmware, ele pode tornar-se inútil.  Para reparar esses discos, a unidade de disco rígido pode ser comutada para o chamado "modo de segurança", por definição específica dos jumpers da unidade. Se a unidade está operando em modo de segurança, ele ignora sua própria firmware. Em vez disso, ele quer que o usuário carregue o firmware para a sua ram. Se o usuário faz upload  do firmware "temporário" correto ele começa executar esse firmware. Se carregou o código RAM (o "loader") começa a funcionar, o usuário pode, então, começar a emitir comandos ATA para o drive para modificar os módulos danificados.

 

  Arquivos de firmware que você pode encontrar em um site como este, contêm uma grande quantidade de arquivos.  Em primeiro lugar, há o "loader" file ( * .LDR). Este arquivo é o codigo firmware "temporário", que está sendo carregado para a memória RAM (por isso, não está sendo escrita em disco). Em seguida, há uma série de ' * .RPM" files. Esses arquivos representam os diferentes módulos, que podem ser escritos para o SA. Os nomes são constituídos de 8 números. Os primeiros 4 números especificam o (hex) UBA e os segundos 4 numeros hexadecimais representam o tamanho do módulo em setores (cada setor normalmente contém 512 bytes, por exemplo, se um arquivo termina em 0002, quer dizer que o módulo é de 1024 bytes). Assim, em suma, depois de carregar o loader para a RAM, o usuário pode iniciar a substituição dos módulos danificados, substituindo-os com corretos.

 

  Por favor, note que o termo 'firmware' para os pacotes neste site não é semanticamente muito bem escolhido, uma vez que estes pacotes contêm todos os módulos necessários à reparação de um disco rígido, e não apenas o modulo firmware ( =code).

 

  Mesmo assim, se você estiver procurando por um determinado módulo de firmware, você pode fazer 3 coisas:

 

  •  
  • 1) Copie os módulos de firmware da SA de um HDD idêntico ou
  • 2) obter estes módulos de um amigo (ou, por exemplo, a partir da secção de ficheiros deste site) ou
  • 3) usar um firmware update do fornecedor.

 

  Sobre esta última opção: atualizações de firmware de fornecedores são bastante raras, uma vez que código do firmware quase nunca precisa ser substituído.  No entanto, Maxtor por exemplo, teve alguns problemas com o código do firmware em alguns modelos Diamondmax. Assim, lançaram uma atualização de firmware. Esta atualização consiste de 2 arquivos:

 

  •  
     
  •   1) o arquivo executável que emite a ATA 'download microcode' para carregar os arquivos de firmware para o HDD
     
  •   2) O código firmware, contendo o modulo 'main' firmware e o codigo 'overlay'.

 

    Firmware "overlay" são específicas funções do código.  Porque não colocar todos os códigos do firmware em uma seção ? Pois bem, uma vez que a memória RAM no disco é um recurso limitado, eles colocam algum código em arquivos "overlay", de forma que este código específico possa ser chamado na RAM quando a função específica é necessária. Quando a função não é necessária, ela pode ser trocada na ram por outras funções.

 

    Os ficheiros de atualização de firmware da maxtor (acho que o mesmo vale para os outros fornecedores) não são embaralhadas/criptografada/embalados de forma alguma.  De fato, você pode encontrar exatamente o mesmo código, desses arquivos ' * .RPM" nos arquivos que o PC3K produz por exemplo.

 

    Maxtor distribui seu arquivo de firmware em um chamado arquivo .DMC.  O arquivo DMC é um pacote de 4 arquivos, um ".bxx", um '.cxx', um ".bbr" e um ".cbr". Como já referi, este pacote DMC não é embalado ou mexido, mesmo assim, você pode simplesmente cortar os arquivos fora.

Os primeiros 0x150 bytes deste arquivo são a plataforma. Este cabeçalho contém os quatro nomes, os deslocamentos em que os bytes do pacote podem ser encontrados, o comprimento dos arquivos e um checksum (não atinge 100% de certeza sobre o checksum embora). O ' .bxx" é o maior arquivo e contém os módulos overlay. Você pode encontrar todos os módulos overlay procurando por 'MO' no arquivo. Logo após estes 2 bytes string, você vai encontrar o numero hexadecimais do módulo overlay ID. O ' .bbr' contém o principal código do firmware. O último 2 arquivos são muito pequenos, não tenho certeza sobre o que eles contêm, provavelmente algumas somas para o firmware e os módulos overlay.

 

    Como disse, o código do firmware e overlay podem também ser encontrados no arquivo ' * .RPM" claro, uma vez que este representa o código do firmware no disco.  Assim, você pode procurar por esses arquivos RPM e procurar o "MO" string para encontrar um determinado módulo overlay.

 

    Portanto, em suma, se um vendedor lançou um firmware uploader tool (a maioria dos fornecedores tem), mas não tenha liberado um ficheiro de firmware específico para o seu tipo de acionamento, você poderia criar o seu firmware, se você tiver o modulo dumping (por exemplo, obtidos a partir deste site).  Você poderá copiar o código principal e modulos overlay e colá-los em um pacote DMC existentes. No entanto, uma vez que eu não sei o cálculo de checksum e o significado destes arquivps .cxx e .cbr (provavelmente as checksums), você tem que fazer mais pesquisa, mas em teoria, seria possível criar o seu próprio arquivo de firmware e atualizá-lo com esse programa padrão do fornecedor para o disco, de modo que você não precisa comprar um aparelho caro como PC3000 (pelo menos não se o seu único objetivo era fazer o upload de um novo firmware).

 

    É claro, você também pode criar o seu próprio programa flasher, ao invés de usar o fornecido pelo vendedor.  No entanto, uma vez que os vendedores usam versões específicas do comando ATA 'download microcode", você teria que fazer uma pesquisa sobre o assunto.

 

    Além disso, você poderia criar um programa que faz tudo que uma ferramenta como PC3000 não faz.  No entanto, como salientei, você precisará muito obter informações detalhadas sobre o ATA os comandos específicos do fornecedor e da estrutura dos SA para determinado tipo de unidade e uma vez que essa informação não é divulgada por ninguém, isso significa um monte de trabalho. Mas, o PC3000 dispõe de um hardware especial para placa PCI. Sim, mas como você vai entender agora, você pode pensar no cartão como nada mais do que uma proteção contra cópia. Eles poderia ter perfeitamente criado a ferramenta sem ele, mas eu acho que eles teriam vendido muitas cópias a menos. Assim, você realmente não pode culpá-los por isso, na verdade, eu acho que é uma jogada inteligente para parar a pirataria.

 

    Portanto, em suma, se você quiser fazer bagunça com a SA, você tem 2 opções: investir uma grande quantidade de tempo e energia para aprender ou simplesmente esvaziar o bolso e comprar uma ferramenta como PC3000.

 

    Espero que você tenha gostado desta informação e apreciado, eu poderia escrever um outro documento com um resumo das minhas futuras pesquisas e achados.

 

Fonte

Conteúdo oculto

 

 

Gostou, dá joinha que to pobre nisso aqui..hehe :)

Compartilhar este post


Link para este post
Compartilhar em outros sites

Pode ir de DFL (www.dolphindatalab.com) que vai estar bem servido tambem.

 

Basta manjar do ingles pra estudar o forum de la..

 

Youtube tem varios videos das ferramentas deles.. DFL-WD DFL_ST DFL-DE DFL-DDP  DFL-URE..

 

Quase todas vale a pena ter.. Melhor que investir de cara na pc3000 (minha opiniao)..

Compartilhar este post


Link para este post
Compartilhar em outros sites
fabioaraujo    22

Valeu pelos joinhas e agradecimentos pessoal..apenas fiz a tradução do post e não tenho tido muito tempo pra fazer mais porque to estudando e quase sem tempo pra nada...Assim que meu tempo melhorar volto pra mais posts do gênero pra vcs...Abraços

Compartilhar este post


Link para este post
Compartilhar em outros sites
rbmoreira    56

será se vale investir 3500usd no DFL-DDP, até que ponto ele consegue reparar o disco?

 

alguem aqui se aventurou em pegar um?

Compartilhar este post


Link para este post
Compartilhar em outros sites
fabioaraujo    22

Rb eu não usei nem comprei esse tipo de ferramenta ainda, não posso lhe dizer se é realmente válido ou até que ponto funciona, mas, acredito que existem coisas que temos que arriscar até certo ponto claro. Se tens uma especializada em recuperação de hds acho sempre bom ter uma ferramenta a mais, mas claro é minha opinião..hehe

Compartilhar este post


Link para este post
Compartilhar em outros sites

Registre-se ou faça login para comentar

Você precisa ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×