Estava no ano de 2019. Em nosso laboratório, recebemos um dispositivo de armazenamento QUANTUM FIREBALL Plus KA, com capacidade de 9.1 GB, que não era exatamente comum para a época. Segundo o proprietário, a falha ocorreu em 2004, devido a uma fonte de alimentação que havia deixado de funcionar e afetou o disco rígido e outros componentes do PC. Em seguida, ele percorreu vários serviços na tentativa de reparar o dispositivo e recuperar os dados, sem sucesso. Em alguns lugares prometeram soluções baratas, mas não resolveram o problema, em outros, o custo era muito alto e o cliente optou por não restaurar os dados. No final, o disco passou por muitos centros de serviço. Perdeu-se várias vezes, mas, graças ao fato de que o proprietário havia feito anotações das informações das etiquetas do dispositivo, ele conseguiu garantir que seu disco rígido fosse devolvido de alguns centros de serviço. Essas idas ao serviço não foram em vão; na placa original do controlador, havia múltiplos sinais de soldagem, além de também se perceber visualmente a falta de elementos SMD (adiantando, posso dizer que esse é o menor dos problemas deste dispositivo).

Fig. 1 HDD Quantum Fireball Plus KA 9,1GB
A primeira tarefa foi a busca em um arquivo de doadores por um irmão gêmeo tão antigo deste dispositivo com uma placa de controlador funcional. Quando essa busca foi concluída, foi possível realizar diagnósticos mais aprofundados. Após verificar as bobinas do motor quanto a curtos-circuitos e garantir a ausência deles, instalamos a placa do dispositivo doador no dispositivo paciente. Ligamos a energia e ouvimos o som normal de rotação do eixo, passando no teste de calibração com o carregamento do firmware, e após alguns segundos, o dispositivo reporta por meio de registros que está pronto para responder a comandos da interface.
Fig. 2 Os indicadores DRD DSC sinalizam a prontidão para receber comandos.
Reservamos todas as cópias dos módulos do firmware. Realizamos uma verificação de integridade dos módulos do firmware. Não há problemas com a leitura dos módulos, mas a análise dos relatórios mostra que existem algumas anomalias.

Fig. 3. Tabela de zonas.
Prestamos atenção na tabela de distribuição de zonas e notamos que o número de cilindros é igual a 13845.

Fig. 4 P-list (lista primária – lista de defeitos registrados durante o ciclo de produção).
Observamos a quantidade excessivamente baixa de defeitos e sua localização. Analisamos o módulo de registro oculto de defeitos de fábrica (60h) e descobrimos que está vazio e não contém nenhuma entrada. Com base nisso, podemos supor que em algum dos centros de serviço anteriores, pode ter ocorrido alguma manipulação na área de serviço do dispositivo, e acidentalmente ou intencionalmente foi gravado um módulo estrangeiro, ou a lista de defeitos original foi apagada. Para verificar essa suposição, criamos uma tarefa no Data Extractor com as opções "criação de cópia setorial" e "criação de tradutor virtual" ativadas.

Fig. 5 Parâmetros da tarefa.
Após criar a tarefa, analisamos as entradas na tabela de partições no setor zero (LBA 0).

Fig. 6 Registro de inicialização principal e tabela de partições.
No deslocamento 0x1BE, há uma única entrada (16 bytes). O tipo de sistema de arquivos na partição é NTFS, deslocamento até o início 0x3F (63) setores, tamanho da partição 0x011309A3 (18.024.867) setores.
No editor de setores, abrimos LBA 63.

Fig. 7 Setor de inicialização NTFS.
Com base nas informações do setor de inicialização NTFS da partição, podemos afirmar o seguinte: o tamanho do setor, considerado no volume, é de 512 bytes (no deslocamento 0x0B está registrada a palavra 0x0200 (512)), o número de setores por cluster é 8 (no deslocamento 0x0D está registrado o byte 0x08), o tamanho do cluster é 512x8=4096 bytes, a primeira entrada MFT está localizada no deslocamento de 6.291.519 setores a partir do início do disco (no deslocamento 0x30 está registrada a palavra quadrupla 0x00 00 00 00 00 0C 00 00 (786.432) número do primeiro cluster MFT. O número do setor é calculado pela fórmula: Número do cluster * número de setores por cluster + deslocamento até o início da partição 786.432 * 8 + 63 = 6.291.519).
Passamos para o setor 6.291.519.

Fig. 8
Mas os dados contidos neste setor não se parecem de forma alguma com uma entrada MFT. Isso, embora indique uma possível tradução incorreta devido a uma lista de defeitos incorreta, não prova esse fato. Para uma verificação adicional, realizaremos a leitura do disco em 10.000 setores em ambas as direções em relação ao setor 6.291.519. Em seguida, realizaremos uma busca de expressões regulares nos dados lidos.

Fig. 9 Primeira entrada MFT
No setor 6 291 551, encontramos a primeira entrada MFT. Sua posição difere da calculada em 32 setores, e, em seguida, segue continuamente um grupo de 16 entradas (de 0 a 15). Vamos registrar na tabela de deslocamentos a posição do setor 6 291 519, deslocando-a para frente em 32 setores.

Fig. 10
A posição da entrada nº 16 deve ter um deslocamento de 12 551 431, mas lá encontramos zeros, em vez da entrada MFT. Vamos realizar uma busca semelhante nas proximidades.

Fig. 11 Entrada MFT 0x00000011 (17)
Detecta-se um grande fragmento MFT, começando com a entrada de número 17 e abrangendo 53 646 entradas, com um deslocamento de 17 setores. Para a posição 12 155 431, vamos colocar um deslocamento de +17 setores na tabela de deslocamentos.
Ao determinar a posição dos fragmentos MFT no espaço, podemos concluir que isso não se parece com uma falha aleatória e que a entrada dos fragmentos MFT possui deslocamentos incorretos. A versão com um tradutor incorreto pode ser considerada confirmada.
Para a localização adicional dos pontos de deslocamento, vamos estabelecer o deslocamento máximo possível. Para isso, determinaremos o quanto o marcador final da partição NTFS (cópia do setor de inicialização) está deslocado. Na figura 7, o deslocamento 0x28 indica que o valor do tamanho da partição é 0x00 00 00 00 01 13 09 A2 (18 024 866) setores. Vamos adicionar o deslocamento da própria partição desde o início do disco ao seu comprimento, resultando no deslocamento do marcador final NTFS de 18 024 866 + 63 = 18 024 929. Esperadamente, não havia a cópia necessária do setor de inicialização lá. Durante a busca nas proximidades, ela foi encontrada com um deslocamento crescente de +12 setores em relação ao último fragmento MFT.

Fig. 12 Cópia do setor de inicialização NTFS
Ignoramos outra cópia do setor de inicialização com deslocamento 18 041 006, pois ela não tem relação com nossa partição. Com base nas atividades anteriores, foi determinado que dentro da partição há fragmentos de 61 setores que "surgiram" na tradução, os quais espalharam os dados.
Realizamos a leitura completa do dispositivo, resultando em 34 setores não lidos. Infelizmente, não é possível garantir com certeza que todos são defeitos removidos da P-list, mas durante a análise adicional, é desejável considerar sua posição, pois em alguns casos será possível determinar com precisão os pontos de deslocamento até o setor, e não apenas até o arquivo.

Fig. 13 Estatísticas de leitura do disco.
Nossa próxima tarefa será estabelecer os locais estimados de deslocamento (com precisão até o arquivo em que ocorreram). Para isso, realizaremos uma varredura de todos os registros MFT e construiremos cadeias de localização de arquivos (fragmentos de arquivos).

Fig. 14 Cadeias de localização de arquivos, ou seus fragmentos.
Em seguida, ao mover de arquivo para arquivo, procuramos a partir de que momento, em vez do cabeçalho esperado do arquivo, existem outros dados, e que o cabeçalho correto será encontrado com algum deslocamento positivo. À medida que refinamos os pontos de deslocamento, preenchemos a tabela. O resultado do preenchimento será mais de 99% dos arquivos sem danos.

Fig. 15 Lista de arquivos do usuário (o cliente deu consentimento para a publicação desta captura de tela)
Para estabelecer deslocamentos pontuais em arquivos individuais, podem ser realizados trabalhos adicionais e, conhecendo a estrutura do arquivo, encontrar dados que não pertencem a ele. No entanto, para esta tarefa, isso não era economicamente viável.
P.S. Gostaria também de fazer um apelo aos colegas que manusearam este disco anteriormente. Por favor, sejam cautelosos ao trabalhar com o firmware dos dispositivos e façam backup dos dados de serviço antes de realizar qualquer alteração, além de não agravarem intencionalmente o problema se não conseguirem entrar em acordo com o cliente sobre a execução dos trabalhos.
Fonte: habr.com
