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


Eu estava lendo sobre drives chineses mágicos. Como isso seria feito? O post 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 propaganda (sobrescrevendo dados quando estava cheio), embora quando eu o formatei, ele começou a mostrar sua capacidade 'verdadeira'.

Como isso é conseguido?


88


origem


Discussão interessante sobre isso no Hacker News - Ivo Flipse♦
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 grande presente de geeks. - Moab
+1. Eu nunca tinha ouvido falar disso antes de ver esta questão "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:


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.


59



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 na mesa principal e no controle, espero que mais perguntas sigam isso :) - Rohan Monga
Cuidado para elaborar onde encontrar a tabela mestre ou como editá-la? - Ivo Flipse♦
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


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 flashdrive falso barato ou até mesmo discos rígidos na China o tempo todo se você vai a um vendedor não-respeitável.


19



No ano passado eu comprei um cartão de memória supostamente de 64GB da China no Ebay por £ 15. 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 forma como o sistema de arquivos foi embaralhado significava que você não notaria um problema até mais que 4Gb foi copiado para o dispositivo, ponto em que novos arquivos apenas 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
@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


Até que eu vi a 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 (desde 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 ...


6



É uma coisa do sistema de arquivos, tenho certeza disso. Essas unidades não são modificadas fisicamente. - crasic
No entanto, eu compraria essa coisa menor .. para fins de teste :) - Greenleader
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 o dd é rápida, barata e fácil comparada à substituição / modificação do hardware. - kaerast


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
    

6





Bem simples,

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

Tomando um dispositivo mais antigo com um chip pequeno, sobrescrevendo o firmware com um número errado de chips de flash, a capacidade total da unidade será maior 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, outro 128 será gravado.

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


5



O problema aqui é que, se for feito dessa forma no hardware, os dados mais recentes também substituirão a tabela de alocação de arquivos FAT32 eo diretório raiz próximo ao início da unidade, tornando a unidade inutilizável até que 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


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.


1