Como a capacidade de um disco rígido é falsificada?

88

Eu estava lendo sobre drives chineses mágicos . Como isso seria feito? A postagem fala sobre um 'modo em loop' e comentários sugerem ter um controlador diferente para mentir para o sistema operacional.

Eu fui e comprei um desses dispositivos, tentei e funcionou como anúncio (sobrescrevendo dados quando estava cheio), embora quando eu o formatei, ele começou a mostrar sua capacidade 'verdadeira'.

Como isso é alcançado?

    
por Rohan Monga 13.04.2011 / 07:23

6 respostas

59

FAT32 tem uma tabela mestre com espaço livre. Você pode hexeditar essa tabela mestre para mostrar qualquer quantidade de espaço livre. Eu tenho um disquete de 3,7 GB para as idades agora.

    
por 13.04.2011 / 15:19
19

O hardware não é modificado - a tabela de arquivos é modificada para enganar o sistema operacional. Durante um formato, a tabela de arquivos é apagada e, assim, a leitura da capacidade original é restaurada.

Você pode ser pego por esse tipo de flashdrive falso ou até mesmo discos rígidos na China o tempo todo se for a um vendedor não-respeitável.

    
por 13.04.2011 / 15:20
6

Até que eu vi sua mensagem, eu tinha certeza que era um controlador diferente - usando um controlador modificado, você pode dizer o que quiser para o sistema operacional. Mas, dado que o formato modifica esse comportamento, isso significa que algum tipo de truque ocorreu também no nível do sistema de arquivos. Isso levanta duas opções:

  • Esta é uma modificação do controlador que simplesmente não funciona após a formatação porque depende de uma modificação do sistema de arquivos (que ainda me parece mais provável).

  • Existe outra maneira de fazer isso sem uma modificação de hardware, por exemplo modificando uma lista encadeada de blocos livres para ser circular (não estou familiarizado o suficiente com os detalhes do FAT32 para decidir se isso é possível - pode verificar em alguns dias se ninguém fizer primeiro ...).

EDIT: É ingênuo supor que o FAT32 está sendo usado, um cenário muito mais provável é que um sistema de arquivos diferente que inadvertidamente permita tal truque circular de gerenciamento de espaço livre seja usado (contanto que esse sistema de arquivos também seja suportado pelo SO - seria praticamente invisível para o usuário). Isso faz com que olhar para esse dispositivo seja muito mais interessante ...

    
por 13.04.2011 / 07:38
6

Veja como você cria um disco de 1.000.000.000.000 bytes (1 TB) na chave (usando o Linux):

  1. Crie um disco falso de 1 TB formatado:

    mkdosfs -C  temp_file 1000000000
    
  2. Verifique se isso realmente aconteceu

    ls -lh temp_file
    
  3. Conecte seu DoK e confira como ele foi montado:

    mount
    
  4. Encontre o nome do dispositivo, algo como /dev/sdb1 (Se você cometer um erro aqui, você pode arruinar algum outro disco conectado ao sistema, então tenha cuidado!)

  5. Desmontar:

    sudo umount /dev/sdb1
    
  6. Descubra o tamanho da nossa tabela FAT:

    ls -s temp_file
    

(O primeiro número é o tamanho em kilobytes)

  1. Copiar para o DoK

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
    
  2. Freak out seu amigo! Você pode montá-lo localmente para brincar assim:

    mkdir test
    sudo mount temp_file test -o loop
    
por 20.04.2011 / 15:37
5

Muito simples,

O controlador do chip flash contém algumas configurações. ID do produto, ID do fornecedor e número & tamanho dos flashchips.

Ao utilizar um dispositivo mais antigo com um pequeno chip, sobrescrevendo o firmware com um número errado de chips flash, a capacidade total da unidade será maior do que o número de flashes instalados.

Como a quantidade de linhas de endereço não foi alterada, o chip sempre será gravado. Por exemplo, os primeiros 128 MB serão gravados, o próximo chip será selecionado e, em seguida, 128 serão gravados.

Como existe apenas um chip, a linha de seleção não está conectada e os dados do segundo chip flash substituem os primeiros dados de chips.

Como o controlador relata o tamanho de todos os chips, incluindo os não conectados ao sistema operacional, o sistema operacional irá formatá-lo do tamanho errado.

    
por 14.04.2011 / 09:03
1

Existem dois métodos para fazer isso:

  1. Partição: existem várias ferramentas para modificar e criar uma partição manualmente. Por exemplo, é possível selecionar mais cilindros que o real disponível. É trivial fazer isso. Ex. partição mágica e acho que mesmo fdisk pode fazer isso

  2. Firmware do Dispositivo: O outro método é modificar o firmware do dispositivo. A maioria dos dispositivos (mas não todos) tem suas informações (Plug & Play e outras informações) contidas no firmware.

Por exemplo, um truque comum é usar um firmware de um disco rígido com mais capacidade em um dispositivo de menor capacidade e "aumentar" o espaço.

    
por 13.04.2011 / 19:39