Come viene falsata la capacità di un disco rigido?


90

Stavo leggendo delle magiche pulsioni cinesi . Come sarebbe fatto? Il post parla di una "modalità loop" e i commenti suggeriscono di avere un controller diverso per mentire al sistema operativo.

Sono andato a comprare uno di questi dispositivi, l'ho provato e ha funzionato come pubblicizzato (sovrascrivendo i dati quando era pieno), anche se quando l'ho formattato, ha iniziato a mostrare la sua "vera" capacità.

Come si ottiene questo risultato?



14
Penso che la domanda sarebbe meglio intitolata "Come viene falsata la capacità della memoria flash" poiché in realtà si tratta di falsificare la quantità di memoria su un'unità flash, non un disco rigido magnetico.
Joseph Earl,

Voglio una di quelle unità magiche cinesi, ma non sto volando in Cina per prenderne una! Farebbe un grande regalo di gag geek.
Moab,

+1. Non ne avevo mai sentito parlare prima di aver visto questa domanda "lanciarazzi in cima alle classifiche" nella vista Domande frequenti.
giovedì

eh .. grazie :) Non mi aspettavo questo tipo di risposta quando mi sono incuriosito da un 'hard disk' con 2 dadi giganteschi nel case
Rohan Monga,

Risposte:


59

FAT32 ha una tabella principale con spazio libero. Puoi modificare la tabella principale per mostrare qualsiasi quantità di spazio libero. Ho un disco floppy da 3,7 GB ormai.


4
Sì, puoi manomettere il FAT, ma ci sono anche modi per armeggiare con il microcontrollore per mentire al sistema operativo. Windows infatti formatterà ripetutamente il disco in modo errato identificandolo come molto più grande di quello che è in realtà. Di solito hanno una sorta di algoritmo incorporato per eseguire il loop del chip flash in modo tale che il sistema operativo sia effettivamente in grado di creare una tabella master (dall'aspetto) valida.
TheCompWiz

mentre comincio a curiosare e pasticciare con la tabella principale e il controller, mi aspetto che seguano altre domande :)
Rohan Monga,

2
Vuoi elaborare dove trovare la tabella principale o come modificarla?
Ivo Flipse,

2
Mi piacerebbe vedere un po 'di documentazione su questo, ho provato a replicarlo con la programmazione e non sono riuscito a ingannare il sistema operativo nel vedere le dimensioni. vedere questo thread qui per vedere quello che ho provato stackoverflow.com/questions/7482920/...
cromestant

Ho avuto una rivista che utilizzava Norton Commander ed hexedit per modificare la dimensione della partizione segnalata. Peccato che ho perso la rivista.
Barfieldmv,

19

L'hardware non viene modificato: la tabella dei file viene semplicemente modificata per ingannare il sistema operativo. Durante un formato la tabella dei file viene cancellata e quindi viene ripristinata la lettura della capacità effettiva.

Puoi essere scoperto da questo tipo di flash drive falso a buon mercato o anche da hard disk in Cina per tutto il tempo se vai da un venditore non affidabile.


11
L'anno scorso ho comprato una memory stick da 64 GB dalla Cina su Ebay per £ 15. Avrei dovuto sapere che la capacità non sarebbe disponibile per il prezzo. In effetti era 4Gb con un falso "6" iniziale inciso sull'etichetta. Il modo in cui il file system è stato codificato significava che non avresti notato un problema fino a quando non fossero stati copiati più di 4 GB sul dispositivo, a quel punto i nuovi file avevano appena iniziato a sovrascrivere parti di quelli esistenti. Non sono mai stato in grado di riformattare la cosa in modo da poterlo usare almeno come uno stick da 4 GB.
FumbleFingers,

7
@FumbleFingers, Sì, è comune per i venditori rovinare le informazioni sul chip, quindi non è possibile formattare direttamente, ma è necessario: 1. utilizzare il software ChipGenius + strumento di produzione di massa per correggere le informazioni sul chip. 2. utilizzare uno strumento di formattazione di basso livello per eseguire il formato effettivo. Ecco una guida: agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo

Grazie! Forse dopo tutto posso ricavarne un po 'di valore (se non l'ho già buttato nel cestino per la frustrazione).
FumbleFingers,

6

Fino a quando non ho visto il tuo messaggio ero sicuro che si trattasse di un controller diverso: utilizzando un controller modificato, puoi dire tutto ciò che ti piace al sistema operativo. Ma dato che il formato modifica questo comportamento, significa che si è verificato un qualche tipo di inganno anche a livello di file system. Ciò solleva due opzioni:

  • Questa è una modifica del controller che semplicemente non funziona dopo la formattazione perché dipende da una modifica del file system (che mi sembra ancora più probabile).

  • Esiste un altro modo per farlo senza una modifica hardware, ad esempio modificando un elenco di blocchi liberi in modo che sia circolare (non ho abbastanza familiarità con le specifiche di FAT32 per decidere se ciò è possibile - potrebbe verificare in pochi giorni se nessuno altrimenti fa prima ...).

EDIT: È ingenuo supporre che venga utilizzato FAT32, uno scenario molto più probabile è che venga utilizzato un file system diverso che inavvertitamente consente tale inganno circolare di gestione dello spazio libero (purché tale file system sia supportato anche dal sistema operativo - sarebbe essere praticamente invisibile all'utente). Questo rende un dispositivo del genere molto più interessante ...


2
È una cosa da file system, ne sono sicuro. Queste unità non vengono modificate fisicamente.
crasic

4
Comprerei comunque una cosa così piccola ... a scopo di test :)
Greenleader,

1
Se hai intenzione di utilizzare un controller personalizzato o modificato, perdi i risparmi sui prezzi acquistando in blocco controller economici. Quindi mi sembra molto più probabile che sia fatto a livello di file system - una scrittura grezza con dd è veloce, economica e facile rispetto alla sostituzione / modifica dell'hardware.
Kaerast,

6

Ecco come creare un disco da 1.000.000.000.000 di byte (1 TB) su chiave (usando Linux):

  1. Crea falso disco da 1 TB formattato:

    mkdosfs -C  temp_file 1000000000
    
  2. Controlla che sia successo davvero

    ls -lh temp_file
    
  3. Collega il tuo DoK e controlla come è stato montato:

    mount
    
  4. Trova il nome del dispositivo, qualcosa del tipo /dev/sdb1 (Se fai un errore qui, potresti rovinare qualche altro disco collegato al sistema, quindi fai attenzione!)

  5. Smontalo:

    sudo umount /dev/sdb1
    
  6. Scopri le dimensioni della nostra tabella FAT:

    ls -s temp_file
    

(Il primo numero è la dimensione in kilobyte)

  1. Copia su DoK

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
    
  2. Fai impazzire il tuo amico! Puoi montarlo localmente per giocare in questo modo:

    mkdir test
    sudo mount temp_file test -o loop
    

5

Abbastanza semplice,

Il controller del chip flash contiene alcune impostazioni. ID prodotto, ID fornitore, numero e dimensioni dei flash flash.

Prendendo un dispositivo più vecchio con un piccolo chip, sovrascrivendo il firmware con un numero errato di chip flash, la capacità totale dell'unità sarà maggiore del numero de flash installato.

Poiché la quantità di righe dell'indirizzo non è cambiata, il chip verrà sempre scritto. Ad esempio, verranno scritti i primi 128 MB, quindi verrà selezionato il chip successivo, quindi verranno scritti altri 128 MB.

Poiché esiste un solo chip, la linea selezionata non è connessa e i dati del secondo flashchip sovrascrivono i dati del primo chip.

Poiché il controller riporta la dimensione di tutti i chip, inclusi quelli non collegati al sistema operativo, il sistema operativo li formatterà felicemente con dimensioni errate.


3
Il problema qui è che, se fatto in questo modo nell'hardware, i dati più recenti sovrascriverebbero anche la tabella di allocazione dei file FAT32 e la directory root vicino all'inizio dell'unità, rendendo così inutilizzabile l'unità fino a quando non viene riformattata. Il fatto che ciò non accada suggerisce che è un hack del filesystem che lo fa funzionare.
Mokubai

sì, geniale com'è, questo verrebbe catturato molto rapidamente.
Rohan Monga,

1

Esistono due metodi per farlo:

  1. Partizione: esistono diversi strumenti per modificare e creare manualmente una partizione. Ad esempio, è possibile selezionare più cilindri rispetto al reale disponibile. È banale farlo. Ex. partizione magica e penso che anche fdisk possa farlo

  2. Firmware del dispositivo: l'altro metodo consiste nel modificare il firmware del dispositivo. La maggior parte dei dispositivi (ma non tutti) hanno le loro informazioni (Plug & Play e altre informazioni) contenute nel firmware.

Ad esempio, un trucco abituale consiste nell'utilizzare un firmware di un disco rigido di capacità maggiore in un dispositivo di capacità inferiore e per "aumentare" lo spazio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.