Procurando unidades USB falsas no Linux

Já ouvi falar sobre o falso problema de USB e memória flash que está acontecendo no eBay e em alguns varejistas menos confiáveis. Recentemente, comprei uma unidade USB de 32 GB e me perguntei se havia uma maneira rápida de ter certeza de que era o tamanho anunciado. Encontrei alguns utilitários do Windows, mas estou executando o Linux. Felizmente, não é muito difícil.

Primeiro, conecte sua unidade USB (obviamente) e encontre o dispositivo usando mount -l

Certifique-se de que está adquirindo o dispositivo certo! Caso contrário, a próxima etapa não será divertida. Vamos sobrescrever toda a unidade com 0s de / dev / zero. Isso excluirá tudo na unidade, portanto, certifique-se de fazer backup dos arquivos se quiser mantê-los.

sudo dd if=/dev/zero of=/dev/[your device here]

Agora espere um pouco enquanto ele grava na unidade. No final, você deve ver algo assim:

dd: writing to ‘/dev/sdb1’: No space left on device
62254082+0 records in
62254081+0 records out
31874089472 bytes (32 GB) copied, 1500.72 s, 21.2 MB/s

Portanto, escreveu 32 GB, que é o que eu esperava. Ouvi dizer que alguns fraudadores ficaram mais espertos e conseguiram contornar isso, então podemos dar um passo adiante, escrevendo alguns dados conhecidos em vez de apenas um monte de zeros.

Primeiro, vamos alocar alguns dados.

fallocate -l 31874089472 known_value.img

[Editar: anteriormente eu usei o argumento -l 32G, que de fato aloca 32 gigabytes, mas devido à estranheza estúpida sobre como se define o espaço em disco, foi cerca de 2 bilhões de bytes fora. Whups.]

Abra known_value.imgem seu editor hexadecimal favorito e jogue alguns bytes nele. Eu vou com 0xDEADBEEF. Seu editor hexadecimal pode não ser capaz de suportar arquivos grandes. Usei bless e parecia estar bem.

Você provavelmente pode adivinhar o que fazer a seguir. Vamos gravar a imagem do valor conhecido na unidade USB e, em seguida, lê-la de volta.

sudo dd if=known_value.img of=/dev/sdb1
sudo dd
if=/dev/sdb1 of=new_image.img

Abra new_image.imgno editor hexadecimal. Se pudermos encontrar 0xDEADBEEF no final, então nosso disco deve ser legítimo.

Nunca encontrei uma unidade falsa antes, então não tenho certeza se existe alguma outra maneira de contornar cheques como este. Eu estaria muito interessado em saber sobre eles.