¿Cómo se falsifica la capacidad de un disco duro?

90

Estaba leyendo sobre unidades mágicas chinas . ¿Cómo se haría esto? La publicación habla de un 'modo en bucle' y los comentarios sugieren tener un controlador diferente para mentirle al sistema operativo.

Fui y compré uno de estos dispositivos, lo probé y funcionó según lo anunciado (sobrescribiendo los datos cuando estaba lleno), aunque cuando lo formateé, comenzó a mostrar su capacidad 'verdadera'.

¿Cómo se logra esto?

Rohan Monga
fuente
14
Creo que la pregunta estaría mejor titulada "¿Cómo se falsifica la capacidad de la memoria flash?", Ya que en realidad se trata de falsificar la cantidad de almacenamiento en una unidad flash, no en un disco duro magnético.
Joseph Earl
¡Quiero una de esas unidades mágicas chinas, pero no voy a volar a China para obtener una !, sería un gran regalo para los mordedores.
Moab
+1. Nunca había oído hablar de esto antes de ver esta pregunta "cohete a la cima de las listas" en la vista Preguntas más frecuentes.
jprete
je ... gracias :) No esperaba este tipo de respuesta cuando tuve curiosidad acerca de un "disco duro" con 2 tuercas gigantes en el caso
Rohan Monga

Respuestas:

59

FAT32 tiene una mesa maestra con espacio libre. Puede hechizar esa tabla maestra para mostrar cualquier cantidad de espacio libre. He tenido un disquete de 3,7 GB durante mucho tiempo.

Barfieldmv
fuente
44
Sí, puede alterar el FAT, pero también hay formas de jugar con el microcontrolador para mentirle al sistema operativo. De hecho, Windows formateará repetidamente el disco identificándolo incorrectamente como mucho más grande de lo que realmente es. Por lo general, tienen algún tipo de algoritmo incorporado para hacer un bucle en el chip flash de tal manera que el sistema operativo sea capaz de crear una tabla maestra válida (con aspecto).
TheCompWiz
Cuando empiezo a hurgar y jugar con la mesa maestra y el controlador, espero más preguntas para seguir esto :)
Rohan Monga
2
¿Le gustaría elaborar dónde encontrar la tabla maestra o cómo editarla?
Ivo Flipse
2
Me encantaría ver algo de documentación sobre esto, he intentado replicar esto con programación y no he podido engañar al sistema operativo para que vea el tamaño. vea este hilo aquí para ver lo que probé stackoverflow.com/questions/7482920/…
cromestant
He tenido una revista que usa Norton Commander y hexadecimal para cambiar el tamaño de partición informado. Lástima que haya perdido la revista.
Barfieldmv
19

El hardware no se modifica: la tabla de archivos simplemente se modifica para engañar al sistema operativo. Durante un formato, la tabla de archivos se borra y, por lo tanto, se restaura la lectura de capacidad genuina.

Usted puede ser atrapado por este tipo de unidades flash falsas baratas o incluso discos duros en China todo el tiempo si acude a un vendedor no acreditado.

KoKo
fuente
11
El año pasado compré una memoria USB supuestamente de 64 Gb de China en Ebay por £ 15. Debería haber sabido que la capacidad no estaría disponible por el precio. De hecho, era de 4 Gb con un falso "6" líder grabado en la etiqueta. La forma en que el sistema de archivos fue codificado significaba que no notarías un problema hasta que se copiaran más de 4 Gb en el dispositivo, momento en el cual los nuevos archivos comenzaron a sobrescribir partes de los existentes. Nunca pude volver a formatear la cosa, así que al menos podría usarla como un dispositivo de 4 Gb.
FumbleFingers
77
@FumbleFingers, sí, es común que los vendedores arruinen la información del chip, por lo que no puede formatear directamente, pero debe hacer esto: 1. use el software ChipGenius + herramienta de producción en masa para arreglar la información del chip. 2. use una herramienta de formateo de bajo nivel para realizar el formato real. Aquí hay una guía: agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo
¡Gracias! Tal vez pueda obtener un poco de valor después de todo (si aún no lo he arrojado a la papelera con frustración).
FumbleFingers
6

Hasta que vi su mensaje, estaba seguro de que era un controlador diferente: al usar un controlador modificado, puede decirle lo que quiera al sistema operativo. Pero dado que el formato modifica este comportamiento, significa que también tuvo lugar algún tipo de truco en el nivel del sistema de archivos. Esto plantea dos opciones:

  • Esta es una modificación del controlador que simplemente no funciona después del formateo porque depende de una modificación del sistema de archivos (que todavía me parece más probable).

  • Hay otra forma de hacer esto sin una modificación de hardware, por ejemplo, modificando una lista enlazada de bloques libres para que sea circular (no estoy lo suficientemente familiarizado con los detalles de FAT32 para decidir si esto es posible; podría verificar en unos días si nadie más lo hace primero ...).

EDITAR: es ingenuo suponer que se está utilizando FAT32, un escenario mucho más probable es que se use un sistema de archivos diferente que inadvertidamente permita ese truco de administración de espacio libre circular (siempre que el sistema de archivos también sea compatible con el sistema operativo, lo haría ser prácticamente invisible para el usuario). Esto hace que mirar un dispositivo así sea mucho más interesante ...

Ofir
fuente
2
Es una cosa del sistema de archivos, estoy seguro. Estas unidades no se modifican físicamente.
crasic
44
Sin embargo, compraría una cosa tan pequeña ... con fines de prueba :)
Greenleader
1
Si se esfuerza por utilizar un controlador personalizado o modificado, entonces pierde el ahorro de precio de comprar controladores baratos a granel. Por lo tanto, me parece mucho más probable que se haga puramente a nivel del sistema de archivos: una escritura sin formato con dd es rápida, barata y fácil en comparación con la sustitución / modificación de hardware.
kaerast
6

Así es como se crea un disco de 1,000,000,000,000 bytes (1 TB) en clave (usando Linux):

  1. Cree un disco falso de 1 TB formateado:

    mkdosfs -C  temp_file 1000000000
    
  2. Comprueba que realmente sucedió

    ls -lh temp_file
    
  3. Conecte su DoK y verifique cómo se montó:

    mount
    
  4. Encuentre el nombre del dispositivo, algo como /dev/sdb1 (si comete un error aquí, puede arruinar algún otro disco conectado al sistema, ¡así que tenga cuidado!)

  5. Desmontarlo:

    sudo umount /dev/sdb1
    
  6. Descubra el tamaño de nuestra tabla FAT:

    ls -s temp_file
    

(El primer número es el tamaño en kilobytes)

  1. Copiar a DoK

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
    
  2. ¡Asusta a tu amigo! Puedes montarlo localmente para jugar así:

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

Bastante sencillo,

El controlador de chip flash contiene algunas configuraciones. Identificación del producto, identificación del proveedor y número y tamaño de flashchips.

Al tomar un dispositivo antiguo con un chip pequeño, sobrescribir el firmware con un número incorrecto de chips flash, la capacidad total de la unidad será mayor que la cantidad de flash instalado.

Debido a que la cantidad de líneas de dirección no ha cambiado, siempre se escribirá en el chip. Por ejemplo, primero se escribirán 128 MB, luego se seleccionará el siguiente chip y luego se escribirán otros 128.

Como solo hay un chip, la línea de selección no está conectada y los datos del segundo chip sobrescriben los datos del primer chip.

Debido a que el controlador informa el tamaño de todos los chips, incluidos los que no están conectados al sistema operativo, el sistema operativo lo formateará con el tamaño incorrecto.

Progger
fuente
3
El problema aquí es que si se hace de esta manera en el hardware, los datos más nuevos también sobrescribirán la tabla de asignación de archivos FAT32 y el directorio raíz cerca del comienzo de la unidad, haciendo que la unidad quede inutilizable hasta que se vuelva a formatear. El hecho de que esto no suceda sugiere que es un hack de sistema de archivos que lo hace funcionar.
Mokubai
Sí, por ingenioso que sea, esto quedaría atrapado muy rápidamente.
Rohan Monga
1

Existen dos métodos para hacer esto:

  1. Partición: existen varias herramientas para modificar y crear una partición manualmente. Por ejemplo, es posible seleccionar más cilindros que los reales disponibles. Es trivial hacer eso. Ex. partición mágica y creo que incluso fdisk puede hacer eso

  2. Firmware del dispositivo: el otro método es modificar el firmware del dispositivo. La mayoría de los dispositivos (pero no todos) tienen su información (Plug & Play y otra información) contenida en el firmware.

Por ejemplo, un truco habitual es utilizar un firmware de un disco duro de mayor capacidad en un dispositivo de menor capacidad y "aumentar" el espacio.

magallanes
fuente