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 anunciado (sobrescrevendo dados quando estava cheio), embora quando eu o formatei, ele começou a mostrar sua capacidade 'verdadeira'.

Como isso é conseguido?

Rohan Monga
fonte
14
Eu acho que a pergunta seria melhor intitulada "Como é a capacidade de memória flash falsificada", uma vez que é na verdade sobre a falsificação da quantidade de armazenamento em uma unidade flash, não um disco rígido magnético.
Joseph Earl
Eu quero uma dessas unidades mágicas chinesas, mas eu não estou voando para a China para comprar uma !, seria um ótimo presente de geeks.
Moab
+1. Eu nunca tinha ouvido falar disso antes de ver essa pergunta "rocket to the top of the charts" na visão Hot Questions.
jprete
heh .. obrigado :) Eu não estava esperando esse tipo de resposta quando fiquei curioso sobre um 'disco rígido' com 2 porcas gigantescas no case
Rohan Monga

Respostas:

59

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

Barfieldmv
fonte
4
Sim, você pode mexer com o FAT, mas também há maneiras de mexer com o micro-controlador para mentir para o sistema operacional. O Windows irá, de fato, formatar repetidamente o disco incorretamente, identificando-o como muito maior do que realmente é. Geralmente, eles têm algum tipo de algoritmo interno para fazer o loop do chip flash de tal forma que o sistema operacional seja realmente capaz de criar uma tabela-mestre (visual) válida.
TheCompWiz
Quando começo a mexer e mexer com a mesa principal e o controlador, espero que mais perguntas sigam isso :)
Rohan Monga
2
Cuidado para elaborar onde encontrar a tabela mestre ou como editá-la?
Ivo Flipse
2
Eu adoraria ver alguma documentação sobre isso, eu tentei replicar isso com programação e não consegui enganar o sistema operacional para ver o tamanho. veja este tópico aqui para ver o que eu tentei stackoverflow.com/questions/7482920/…
cromestant
Eu tive uma revista usando o Norton Commander e hexedit para alterar o tamanho da partição relatada. Pena que eu perdi a revista.
Barfieldmv
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 este tipo de unidade flash falso barato ou até mesmo discos rígidos na China o tempo todo, se você vai a um vendedor não-respeitável.

KoKo
fonte
11
No ano passado, comprei um cartão de memória supostamente de 64GB da China no Ebay por 15 libras. Eu deveria saber que a capacidade não estaria disponível para o preço. Na verdade, foi 4Gb com um falso "6" gravado no rótulo. A maneira como o sistema de arquivos foi embaralhado significava que você não notaria um problema até mais que O 4Gb foi copiado no dispositivo, quando novos arquivos começaram a sobrescrever partes dos existentes. Eu nunca fui capaz de reformatar a coisa para que eu pudesse pelo menos usá-la como um stick de 4Gb.
FumbleFingers
7
@FumbleFingers, Sim, é comum os vendedores estragar a informação do chip, então você não pode formatar diretamente, mas você tem que fazer isso: 1. usar o software ChipGenius + ferramenta de produção em massa para corrigir as informações do chip. 2. use uma ferramenta de formatação de baixo nível para executar o formato real. Aqui está um guia: agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo
Obrigado! Talvez eu possa tirar um pouco de valor disso depois de tudo (se eu ainda não o joguei no lixo em frustração).
FumbleFingers
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 mais 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 é usado (contanto que esse sistema de arquivos também seja suportado pelo SO ser virtualmente invisível para o usuário). Isso faz com que olhar para esse dispositivo seja muito mais interessante ...

Ofir
fonte
2
É uma coisa do sistema de arquivos, tenho certeza disso. Essas unidades não são modificadas fisicamente.
crasic
4
No entanto, eu compraria essa coisa menor .. para fins de teste :)
Greenleader
1
Se você está indo para o esforço de usar um controlador personalizado ou modificado, então você perde a economia de preços de compra em massa de controladores baratos. Assim, parece-me muito mais provável que seja puramente feito no nível do sistema de arquivos - uma gravação bruta com dd é rápida, barata e fácil comparada à substituição / modificação de hardware.
kaerast
6

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

  1. Crie um disco formatado de 1 TB falso:

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

    ls -lh temp_file
    
  3. Conecte seu DoK e verifique 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. Desmonte:

    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. Surpreenda seu amigo! Você pode montá-lo localmente para brincar assim:

    mkdir test
    sudo mount temp_file test -o loop
    
Boris
fonte
5

Bem simples,

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

Tomando 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 128MB serão escritos, o próximo chip será selecionado e, em seguida, 128 serão gravados.

Como há apenas um chip, a linha de seleção não está conectada e os segundos dados do flash chip 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 corretamente no tamanho errado.

Progger
fonte
3
O problema aqui é que, se for feito dessa forma em hardware, os dados mais recentes também substituirão a tabela de alocação de arquivos FAT32 e o diretório raiz próximo ao início da unidade, tornando a unidade inutilizável até que ela seja reformatada. O fato de isso não acontecer sugere que é um hack do sistema de arquivos que faz funcionar.
Mokubai
Sim, engenhoso como é, isso seria pego muito rapidamente.
Rohan Monga
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 & amp; 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.

magallanes
fonte