Discussion:
pornodrive(pendrive) kingston 256 GB trucho, problema y solución
ArYiXb
2013-05-22 01:55:49 UTC
Permalink
CC'd lug-devel

Llegó hasta mis garras un dispositivo que aparenta ser
un pendrive Kingston DT310 256GB, desconozco el origen
dado que me lo trajo un técnico diciendo que era de un cliente el cual
lo habria comprado en MC.

al conectarlo:
[142446.025124] sd 35:0:0:0: Attached scsi generic sg4 type 0
[142446.026090] sd 35:0:0:0: [sdd] 524288000 512-byte logical blocks: (268
GB/250 GiB)
[142446.026568] sd 35:0:0:0: [sdd] Write Protect is off
[142446.026571] sd 35:0:0:0: [sdd] Mode Sense: 03 00 00 00
[142446.027069] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.027073] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.030446] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.030452] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.472685] sdd:
[142446.474788] sd 35:0:0:0: [sdd] No Caching mode page present
[142446.474802] sd 35:0:0:0: [sdd] Assuming drive cache: write through
[142446.474805] sd 35:0:0:0: [sdd] Attached SCSI removable disk

aparentemente tiene dibujada la cantidad de bloques 524288000 * 512 / 1024
= 256GB

Lo primero que escuché sobre esto me daba una cuenta clara, me contaron de
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.

Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.


----------------------------cortar----------------------------
#include <stdio.h>
#define BLOCK_SIZE 512
int main(int argc, char *argv[]){
char data[BLOCK_SIZE];
FILE *f = fopen(argv[1], "r");
if(f==NULL) return 1;
unsigned long sectores=0;
size_t leidos=0;
printf("Leyendo el dispositivo %s....\n", argv[1]);
do {
leidos = fread(data, BLOCK_SIZE, 1, f);
++sectores;
} while(leidos);
fclose(f);
printf("sectores leidos: %lu * %d bytes = %lu\n", sectores, BLOCK_SIZE,
sectores*BLOCK_SIZE);
return 0;
}
/*
* probado con gcc 4.7.2 y clang 3.0
* gcc -std=c89 -Wall -o pentruch pentruch.c
* uso (root):
* ./pentruch /dev/sdX
*
Copyright (c) <2013> <H. Gabriel Máculus>

Se autoriza por la presente, de forma gratuita, a cualquier
persona que haya obtenido una copia de este software y
archivos asociados de documentación (el "Software"), para tratar en el
Software sin restricción, incluyendo sin ninguna limitación en lo que
concierne
los derechos para usar, copiar, modificar, fusionar, publicar,
distribuir, sublicenciar, y / o vender copias de este
Software, y para permitir a las personas a las que se les proporcione el
Software para
hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso
tendrá que ser incluido en todas las copias o partes sustanciales de
este Software.

EL SOFTWARE SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN
TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A GARANTÍAS DE
MERCANTIBILIDAD, CAPACIDAD DE HACER Y DE NO INFRACCIÓN DE COPYRIGHT. EN
NINGÚN
CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE
NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES,
YA SEA EN UN LITIGIO, AGRAVIO O DE OTRO MODO,
DERIVADAS DE, OCASIONADAS POR CULPA DE O EN CONEXION CON EL
SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.
*/

----------------------------cortar----------------------------
--
salu

--ArYiX
Alejandro Vargas
2013-05-22 09:17:16 UTC
Permalink
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me contaron de
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que pasa cuando
tratás de leer más allá del final de una memoria es normalmente que vuelve
a leer por el principio. Lo que yo haría para detectar esto es hacer
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros 512
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si encuentro un
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si lo
encuentro verificaría de ahí en adelante más sectores a ver si son iguales.
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de los 512
bytes) y verificaría que aparece en el lugar donde los datos se repiten.
Después se puede volver a dejar lo que había aunque normalmente no es
dañino escribir ahí porque esa parte no se suele usar.

Yo no tengo ninguna memoria de esas para probar pero si lo hacés pasá el
código porque es interesante tenerlo.
ArYiXb
2013-05-22 11:31:51 UTC
Permalink
Post by Alejandro Vargas
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me contaron
de
Post by ArYiXb
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que pasa cuando
tratás de leer más allá del final de una memoria es normalmente que vuelve
a leer por el principio. Lo que yo haría para detectar esto es hacer
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros 512
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si encuentro un
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si lo
encuentro verificaría de ahí en adelante más sectores a ver si son iguales.
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de los 512
bytes) y verificaría que aparece en el lugar donde los datos se repiten.
Después se puede volver a dejar lo que había aunque normalmente no es
dañino escribir ahí porque esa parte no se suele usar.
Yo no tengo ninguna memoria de esas para probar pero si lo hacés pasá el
código porque es interesante tenerlo.
Eso va a ser para la version destructiva, esto es sólo lectura y funciona
con el que tengo.

Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los flujos
de datos, releer para verficar la memoria, apenas tenga algo lo mando por
acá, la sigo hasta tener una version infalible. También me prometieron
prestarme otro pen para jugar.

Gracias ANV por la respuesta.

Es bueno saber que alguien lee esta lista.
--
salu

--ArYiX
Federico Budassi
2013-05-22 12:28:41 UTC
Permalink
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me contaron
de
Post by ArYiXb
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre 64
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser
un
Post by Alejandro Vargas
Post by ArYiXb
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que pasa
cuando
Post by Alejandro Vargas
tratás de leer más allá del final de una memoria es normalmente que
vuelve
Post by Alejandro Vargas
a leer por el principio. Lo que yo haría para detectar esto es hacer
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros 512
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si encuentro
un
Post by Alejandro Vargas
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si lo
encuentro verificaría de ahí en adelante más sectores a ver si son
iguales.
Post by Alejandro Vargas
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de los
512
Post by Alejandro Vargas
bytes) y verificaría que aparece en el lugar donde los datos se repiten.
Después se puede volver a dejar lo que había aunque normalmente no es
dañino escribir ahí porque esa parte no se suele usar.
Yo no tengo ninguna memoria de esas para probar pero si lo hacés pasá el
código porque es interesante tenerlo.
Eso va a ser para la version destructiva, esto es sólo lectura y funciona
con el que tengo.
Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los flujos
de datos, releer para verficar la memoria, apenas tenga algo lo mando por
acá, la sigo hasta tener una version infalible. También me prometieron
prestarme otro pen para jugar.
Gracias ANV por la respuesta.
Es bueno saber que alguien lee esta lista.
--
salu
--ArYiX
Hay varios que leen la lista, aunque usualmente no respondamos...
Particularmente este tema es muy interesante. Ni sabía que hacían cosas
como esta con los pendrives.

Btw, para cuando el sacar la regla anti-top posting? a estas alturas, la
cultura ha cambiado suficiente para permitirlo, bah, eso creo ;-)

Federico.
osvaldo vulluz
2013-05-22 12:34:38 UTC
Permalink
Hola. interesante... en la triple frontera se venden esos aparatos, me ha
tocado ver varios que terminaron en tachos de basura.
Con estos sericios de webmail, incluso es mas lógico hacer top posting,
tiene más sentido, me parece. igual, prohibir el top posting es muy geek,
je!

Osvaldo.



El 22 de mayo de 2013 09:28, Federico Budassi
Post by ArYiXb
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me
contaron
Post by Alejandro Vargas
Post by Alejandro Vargas
de
Post by ArYiXb
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir entre
64
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
para obtener la capacidad real, este dice 256GB y es de 4GB, asi que
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria
ser
Post by Alejandro Vargas
un
Post by Alejandro Vargas
Post by ArYiXb
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que pasa
cuando
Post by Alejandro Vargas
tratás de leer más allá del final de una memoria es normalmente que
vuelve
Post by Alejandro Vargas
a leer por el principio. Lo que yo haría para detectar esto es hacer
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros 512
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si
encuentro
Post by Alejandro Vargas
un
Post by Alejandro Vargas
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si lo
encuentro verificaría de ahí en adelante más sectores a ver si son
iguales.
Post by Alejandro Vargas
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de los
512
Post by Alejandro Vargas
bytes) y verificaría que aparece en el lugar donde los datos se
repiten.
Post by Alejandro Vargas
Post by Alejandro Vargas
Después se puede volver a dejar lo que había aunque normalmente no es
dañino escribir ahí porque esa parte no se suele usar.
Yo no tengo ninguna memoria de esas para probar pero si lo hacés pasá
el
Post by Alejandro Vargas
Post by Alejandro Vargas
código porque es interesante tenerlo.
Eso va a ser para la version destructiva, esto es sólo lectura y funciona
con el que tengo.
Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los flujos
de datos, releer para verficar la memoria, apenas tenga algo lo mando por
acá, la sigo hasta tener una version infalible. También me prometieron
prestarme otro pen para jugar.
Gracias ANV por la respuesta.
Es bueno saber que alguien lee esta lista.
--
salu
--ArYiX
Hay varios que leen la lista, aunque usualmente no respondamos...
Particularmente este tema es muy interesante. Ni sabía que hacían cosas
como esta con los pendrives.
Btw, para cuando el sacar la regla anti-top posting? a estas alturas, la
cultura ha cambiado suficiente para permitirlo, bah, eso creo ;-)
Federico.
--
Osvaldo J. Vülluz
desde Mendoza, Argentina.
http://www.fioncelta.com.ar
maxi gadea
2013-05-22 12:43:20 UTC
Permalink
Post by osvaldo vulluz
Hola. interesante... en la triple frontera se venden esos aparatos, me ha
tocado ver varios que terminaron en tachos de basura.
Con estos sericios de webmail, incluso es mas lógico hacer top posting,
tiene más sentido, me parece. igual, prohibir el top posting es muy geek,
je!
Osvaldo.
El 22 de mayo de 2013 09:28, Federico Budassi
Post by ArYiXb
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me
contaron
Post by Alejandro Vargas
Post by Alejandro Vargas
de
Post by ArYiXb
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir
entre
Post by ArYiXb
64
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
para obtener la capacidad real, este dice 256GB y es de 4GB, asi
que
Post by ArYiXb
Post by Alejandro Vargas
Post by Alejandro Vargas
Post by ArYiXb
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria
ser
Post by Alejandro Vargas
un
Post by Alejandro Vargas
Post by ArYiXb
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que pasa
cuando
Post by Alejandro Vargas
tratás de leer más allá del final de una memoria es normalmente que
vuelve
Post by Alejandro Vargas
a leer por el principio. Lo que yo haría para detectar esto es hacer
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros
512
Post by ArYiXb
Post by Alejandro Vargas
Post by Alejandro Vargas
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si
encuentro
Post by Alejandro Vargas
un
Post by Alejandro Vargas
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si
lo
Post by ArYiXb
Post by Alejandro Vargas
Post by Alejandro Vargas
encuentro verificaría de ahí en adelante más sectores a ver si son
iguales.
Post by Alejandro Vargas
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de
los
Post by ArYiXb
Post by Alejandro Vargas
512
Post by Alejandro Vargas
bytes) y verificaría que aparece en el lugar donde los datos se
repiten.
Post by Alejandro Vargas
Post by Alejandro Vargas
Después se puede volver a dejar lo que había aunque normalmente no es
dañino escribir ahí porque esa parte no se suele usar.
Yo no tengo ninguna memoria de esas para probar pero si lo hacés pasá
el
Post by Alejandro Vargas
Post by Alejandro Vargas
código porque es interesante tenerlo.
Eso va a ser para la version destructiva, esto es sólo lectura y
funciona
Post by ArYiXb
Post by Alejandro Vargas
con el que tengo.
Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los
flujos
Post by ArYiXb
Post by Alejandro Vargas
de datos, releer para verficar la memoria, apenas tenga algo lo mando
por
Post by ArYiXb
Post by Alejandro Vargas
acá, la sigo hasta tener una version infalible. También me prometieron
prestarme otro pen para jugar.
Gracias ANV por la respuesta.
Es bueno saber que alguien lee esta lista.
--
salu
--ArYiX
Hay varios que leen la lista, aunque usualmente no respondamos...
Particularmente este tema es muy interesante. Ni sabía que hacían cosas
como esta con los pendrives.
Btw, para cuando el sacar la regla anti-top posting? a estas alturas, la
cultura ha cambiado suficiente para permitirlo, bah, eso creo ;-)
Federico.
--
Osvaldo J. Vülluz
desde Mendoza, Argentina.
http://www.fioncelta.com.ar
El top posting hace que sea mas complicado seguir la lectura de los
correos, cualquier cosa que leemos lo hacemos de arriba hacia abajo, con
top posting lees de abajo hacia arriba.

Si usas la aplicacion de Gmail para Android deberias tocar donde dice
"Responder entre lineas" y situas el cursor abajo de todo y antes de tu
firma.

En los laburos donde he estado he intentado que no hagan top-posting los
usuarios, pero todo fue al pedo, la gente hace top posting, considero que
no hacerlo es una muy buena practica.

Por ejemplo ahora tu respuesta quedo colgada, no sigue el hilo.


Con respecto a los pendrive, tenes alguna foto? dice alguna "marca" en
especial o se parecen a algun modelo de una marca conocida?

Saludos
--
Maximiliano Gadea
ArYiXb
2013-05-22 15:19:33 UTC
Permalink
Post by ArYiXb
Post by osvaldo vulluz
Hola. interesante... en la triple frontera se venden esos aparatos, me ha
tocado ver varios que terminaron en tachos de basura.
Con estos sericios de webmail, incluso es mas lógico hacer top posting,
tiene más sentido, me parece. igual, prohibir el top posting es muy geek,
je!
Osvaldo.
El 22 de mayo de 2013 09:28, Federico Budassi
Post by ArYiXb
El 22 de mayo de 2013 06:17, Alejandro Vargas <
Post by Alejandro Vargas
Post by ArYiXb
Lo primero que escuché sobre esto me daba una cuenta clara, me
contaron
Post by Alejandro Vargas
de
Post by ArYiXb
un pen drive de 64GB que era
realmente de 1GB con lo cual podemos deducir que basta dividir
entre
Post by ArYiXb
64
Post by Alejandro Vargas
Post by ArYiXb
para obtener la capacidad real, este dice 256GB y es de 4GB, asi
que
Post by ArYiXb
Post by Alejandro Vargas
Post by ArYiXb
estamos teoricamente en lo correcto hasta ahí.
Al buscar en inet me encontre con soluciones windozamente
cerradas.
Post by osvaldo vulluz
Post by ArYiXb
Post by Alejandro Vargas
Post by ArYiXb
He aquí una versión no destructiva y sólo lectura de lo que
podria
Post by osvaldo vulluz
Post by ArYiXb
ser
un
Post by Alejandro Vargas
Post by ArYiXb
programa.
Sospecho que esto no va a detetectar el trucherío porque lo que
pasa
Post by osvaldo vulluz
Post by ArYiXb
cuando
Post by Alejandro Vargas
tratás de leer más allá del final de una memoria es normalmente que
vuelve
Post by Alejandro Vargas
a leer por el principio. Lo que yo haría para detectar esto es
hacer
Post by osvaldo vulluz
Post by ArYiXb
Post by Alejandro Vargas
lecturas cada determinada cantidad de bloques y verificar que no se
encuentre lo mismo que al comienzo. Leería por ejemplo los primeros
512
Post by ArYiXb
Post by Alejandro Vargas
bytes y haría lecturas tal vez cada 128Mb por ejemplo a ver si
encuentro
un
Post by Alejandro Vargas
sector igual. Eso indicaría el posible tamaño real de lamemoria. Si
lo
Post by ArYiXb
Post by Alejandro Vargas
encuentro verificaría de ahí en adelante más sectores a ver si son
iguales.
Post by Alejandro Vargas
Eso ya sería suficiente sospecha de que el tamaño es ese y para
corroborarlo, grabaría algún dato en el segundo sector (a partir de
los
Post by ArYiXb
512
Post by Alejandro Vargas
bytes) y verificaría que aparece en el lugar donde los datos se
repiten.
Post by Alejandro Vargas
Después se puede volver a dejar lo que había aunque normalmente no
es
Post by osvaldo vulluz
Post by ArYiXb
Post by Alejandro Vargas
dañino escribir ahí porque esa parte no se suele usar.
Yo no tengo ninguna memoria de esas para probar pero si lo hacés
pasá
Post by osvaldo vulluz
Post by ArYiXb
el
Post by Alejandro Vargas
código porque es interesante tenerlo.
Eso va a ser para la version destructiva, esto es sólo lectura y
funciona
Post by ArYiXb
con el que tengo.
Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los
flujos
Post by ArYiXb
de datos, releer para verficar la memoria, apenas tenga algo lo mando
por
Post by ArYiXb
acá, la sigo hasta tener una version infalible. También me
prometieron
Post by osvaldo vulluz
Post by ArYiXb
prestarme otro pen para jugar.
Gracias ANV por la respuesta.
Es bueno saber que alguien lee esta lista.
--
salu
--ArYiX
Hay varios que leen la lista, aunque usualmente no respondamos...
Particularmente este tema es muy interesante. Ni sabía que hacían cosas
como esta con los pendrives.
Btw, para cuando el sacar la regla anti-top posting? a estas alturas,
la
Post by osvaldo vulluz
Post by ArYiXb
cultura ha cambiado suficiente para permitirlo, bah, eso creo ;-)
Federico.
--
Osvaldo J. Vülluz
desde Mendoza, Argentina.
http://www.fioncelta.com.ar
El top posting hace que sea mas complicado seguir la lectura de los
correos, cualquier cosa que leemos lo hacemos de arriba hacia abajo, con
top posting lees de abajo hacia arriba.
Si usas la aplicacion de Gmail para Android deberias tocar donde dice
"Responder entre lineas" y situas el cursor abajo de todo y antes de tu
firma.
En los laburos donde he estado he intentado que no hagan top-posting los
usuarios, pero todo fue al pedo, la gente hace top posting, considero que
no hacerlo es una muy buena practica.
Por ejemplo ahora tu respuesta quedo colgada, no sigue el hilo.
Con respecto a los pendrive, tenes alguna foto? dice alguna "marca" en
especial o se parecen a algun modelo de una marca conocida?
Saludos
--
Maximiliano Gadea
/*
Copyright (c) <2013> <H. Gabriel Máculus>

Se autoriza por la presente, de forma gratuita, a cualquier
persona que haya obtenido una copia de este software y
archivos asociados de documentación (el "Software"), para tratar en el
Software sin restricción, incluyendo sin ninguna limitación en lo que
concierne
los derechos para usar, copiar, modificar, fusionar, publicar,
distribuir, sublicenciar, y / o vender copias de este
Software, y para permitir a las personas a las que se les proporcione el
Software para
hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso
tendrá que ser incluido en todas las copias o partes sustanciales de
este Software.

EL SOFTWARE SE ENTREGA "TAL CUAL", SIN GARANTÍA DE NINGÚN
TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A GARANTÍAS DE
MERCANTIBILIDAD, CAPACIDAD DE HACER Y DE NO INFRACCIÓN DE COPYRIGHT. EN
NINGÚN
CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE
NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES,
YA SEA EN UN LITIGIO, AGRAVIO O DE OTRO MODO,
DERIVADAS DE, OCASIONADAS POR CULPA DE O EN CONEXION CON EL
SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.
*/

#include <stdio.h>
#define _FILE_OFFSET_BITS 64
#define BLOCK_SIZE 1*1024*1024
int main(int argc, char *argv[]){
char data;
FILE *f = fopen(argv[1], "r");
if(f==NULL) return 1;
unsigned long v;
printf("Leyendo el dispositivo %s....\n", argv[1]);
do {
v=ftell(f);
fread(&data, 1, 1, f);
fseek(f, BLOCK_SIZE, SEEK_CUR);
if(v == ftell(f))
{
printf("Último bloque leido %lu\n", v);
break;
}
} while(!feof(f));
fclose(f);
return 0;
}
/*
* probado con gcc 4.7.2 y clang 3.0
* gcc -std=c99 -Wall -o pentruch pentruch.c
* uso (root):
* ./pentruch /dev/sdX
*/

Acá está desplazándose cada 1MB, es rápido y efectivo, los probe con 3 pen,
2 de verdad.

Q: Como saber cual es trucho?
A: search pen drive kingston trucho
--
salu

--ArYiX
Alejandro Vargas
2013-05-23 09:00:39 UTC
Permalink
Post by ArYiXb
Acá está desplazándose cada 1MB, es rápido y efectivo, los probe con 3 pen,
2 de verdad.
Q: Como saber cual es trucho?
A: search pen drive kingston trucho
Como te decía, dudo que sólo leer te sirva. Tenés que leer el primer sector
y a continuación ir leyendo en busca de una repetición de ese sector porque
no creo que te de error al tratar de leer más allá del final. Lo que pasará
es que simplemente volverá a leer desde el principio.

Lo de leer saltando de a 1Mb me parece bien, peor no se si el valor
correcto sería 1Mb u otro, porque hay que asegurarse de saltar en un
submúltiplo del tamaño de la memoria física.

En realidad la manera segura es leer uno por uno todos los sectores hasta
encontrar que se empiezan a repetir, pero la idea de salteárselos es para
acelerar el asunto. Si la memoria fuera de 1Gb, lo ideal sería saltar 1Gb
porque en el primer salto lo detectarías. Lo segundo mejor sería saltar
medio Gb porque lo detectarías al segundo salto. El problema es que no
sabemos el tamaño real, así que se me ocurren dos opciones:

1) intentar adivinar probando tamaños razonables: 4Gb, 2Gb, 1Gb, 512Mb,
128Mb, 64Mb. Son pocas pruebas así que se podría empezar por ejemplo con la
mitad del tamaño que reporta: si es trucho debería dar una repetición
inmediatamente a no ser que el tamaño que reporte no sea un múltiplo del
tamaño real.

2) La otra alternativa es usar siempre un bloque muy chico y elegir como
tamaño lo que tienen internamente las memorias flash, que según wikipedia:
http://en.wikipedia.org/wiki/Flash_memory

Para memorias NOR que son las más baratas: Typical block sizes are 64, 128,
or 256 KB <http://en.wikipedia.org/wiki/Kilobyte#Base_2_definition>.

Y para memorias NAND que son las mejores porque aceptan más ciclos de
borrado:
The pages are typically 512[19] or 2,048 or 4,096 bytes in size. Associated
with each page are a few bytes (typically 1/32 of the data size) that can
be used for storage of an error correcting code (ECC) checksum.

Typical block sizes include:
32 pages of 512+16 bytes each for a block size of 16 KB
64 pages of 2,048+64 bytes each for a block size of 128 KB[20]
64 pages of 4,096+128 bytes each for a block size of 256 KB[21]
128 pages of 4,096+128 bytes each for a block size of 512 KB.

Como sea, lo que deberías buscar es donde se repiten los datos del
principio. Localizado eso modificar algún dato y verificar que
efectivamente, lo que leés es una repetición. OJO: busca la forma de evitar
que el sistema use la caché porque de lo contrario no detectarás el cambio
porque te estará respondiendo lo que tiene cacheado y no lo que realmente
hay grabado.

Mirá, así rápidamente en google veo esto: Re: how to force uncached reads
from device??
Try opening with O_DIRECT... I believe that's the supported "bypass the
cache" mechanism

http://linux.derkeiler.com/Newsgroups/comp.os.linux.development.system/2005-03/0324.html
--
Qapla'
Alejandro Vargas
Alejandro Vargas
2013-05-23 08:44:44 UTC
Permalink
Post by maxi gadea
En los laburos donde he estado he intentado que no hagan top-posting los
usuarios, pero todo fue al pedo, la gente hace top posting, considero que
no hacerlo es una muy buena practica.
En algunos casos el top posting sí es útil. En una oficina donde se manejan
pocos mensajes y con pocas respuestas en un hilo, con ver el asunto ya te
alcanza para acordarte de qué se trataba. Entonces lo más conveniente es
abrir y simplemente leer lo que hay arriba y listo. Sólo mirás lo demás si
tenés alguna duda.

Pero en estas listas es diferente porque muchas veces uno empieza a leer un
hilo por los últimos mensajes y no desde el principio. Entonces seguir el
orden de arriba hacia abajo y ver un resumen de lo importante de la
conversación es lo más útil.
Post by maxi gadea
Con respecto a los pendrive, tenes alguna foto? dice alguna "marca" en
especial o se parecen a algun modelo de una marca conocida?
En una foto de un pendrive no notarías nada porque los hacen incluso
copiando marcas de originales de buena calidad. La única forma de notarlo
visualmente sería abrirlo, mirar el chip y buscar la hoja de datos para
saber de qué capacidad es.

Lo más seguro es un software que haga una prueba orientada específicamente
a detectar esos engaños... y comprar a vendedores de buena reputación...
--
Qapla'
Alejandro Vargas
Lautaro Cozzani
2013-05-26 10:38:13 UTC
Permalink
Post by Alejandro Vargas
Post by maxi gadea
En los laburos donde he estado he intentado que no hagan top-posting los
usuarios, pero todo fue al pedo, la gente hace top posting, considero que
no hacerlo es una muy buena practica.
En algunos casos el top posting sí es útil. En una oficina donde se manejan
pocos mensajes y con pocas respuestas en un hilo, con ver el asunto ya te
alcanza para acordarte de qué se trataba. Entonces lo más conveniente es
abrir y simplemente leer lo que hay arriba y listo. Sólo mirás lo demás si
tenés alguna duda.
Pero en estas listas es diferente porque muchas veces uno empieza a leer un
hilo por los últimos mensajes y no desde el principio. Entonces seguir el
orden de arriba hacia abajo y ver un resumen de lo importante de la
conversación es lo más útil.
De todas formas la solucion no es el bottom-posting, si no el responder
interlineado eliminando las partes del mensaje que no son importantes para
la respuesta. De esta forma vos sabes inmediatamente a que le esta
respondiendo y si queres ver "el pasado" de la conversacion tenes los demas
mails, que en teoria deberian haber sido respondidos de la misma manera.
Usar top o bottom asi en crudo (con el mensaje original entero) es casi lo
mismo, ya que si el mensaje es largo capaz alguien tampoco lo lee todo y
tiene q ir a buscar la respuesta abajo.
--
Lautaro

*Todo debería hacerse tan simple como sea posible, pero no mas que eso.*
**Albert Einstein
Alejandro Vargas
2013-05-27 14:10:47 UTC
Permalink
Post by Lautaro Cozzani
De todas formas la solucion no es el bottom-posting, si no el responder
interlineado eliminando las partes del mensaje que no son importantes para
la respuesta. De esta forma vos sabes inmediatamente a que le esta
respondiendo
Claro, claro. Cuando es relevante en el "bottom-posting" yo entiendo que
también se refiere a escribir entre medio.
Post by Lautaro Cozzani
y si queres ver "el pasado" de la conversacion tenes los demas
mails, que en teoria deberian haber sido respondidos de la misma manera.
Pero uno no siempre tiene todo el hilo en su mail. Si por ejemplo estás
haciendo una búsqueda por internet podés encontrar un mail de una lista
donde responden a un problema y si está bien respondido no necesitás
ponerte a buscar otros mensajes.
Post by Lautaro Cozzani
Usar top o bottom asi en crudo (con el mensaje original entero) es casi lo
mismo, ya que si el mensaje es largo capaz alguien tampoco lo lee todo y
tiene q ir a buscar la respuesta abajo.
Bueno, por suerte gmail es suficinetemente inteligente para ocultar los
textos que no son relevantes (se pueden desplegar con un click).
--
Qapla'
Alejandro Vargas
Alejandro Vargas
2013-05-23 08:30:08 UTC
Permalink
El 22 de mayo de 2013 14:28, Federico Budassi
Post by Federico Budassi
Hay varios que leen la lista, aunque usualmente no respondamos...
Particularmente este tema es muy interesante. Ni sabía que hacían cosas
como esta con los pendrives.
Hacen eso y muchas cosas peores. La cosa es observar los precios y
desconfiar cuando no cuadren... y de ser posible siempre pagar con paypal
(que te devuelven el dinero si te quejas) y usar sitios como ebay donde los
votos negativos hacen mucho daño.

Un disco así:
Loading Image...

[image: Imágenes integradas 1]
Que tiene esto adentro:
Loading Image...

[image: Imágenes integradas 2]
Y no es el único caso de ese tipo, mira:

http://www.nopuedocreer.net/2012/04/normal-0-21-false-false-false_23.html#.UZ3RAmSe-O8

[image: Imágenes integradas 4]

[image: Imágenes integradas 3]

Si buscás en internet verás muchos artículos hablando de memorias USB con
el tamaño falseado, como por ejemplo
http://opiniones.ebay.es/CoMO-REPARAR-UNA-MEMORIA-USB-FALSA?ugid=10000000005642395

Dicho sea de paso, ArYiXb, cuando logrés que tu programa detecte el tamaño
real podrías agregarle la función de cambiar el tamaño de la partición para
que refleje lo real. De esa forma la memoria se podría usar y reportaría
como espacio sin particionar lo que no existe. O podrías crear dos
particiones, una con los datos útiles y otra con el resto y de un tipo que
windows no reconozca o que vea como oculto para que el usuario no se vea
tentado de tratar de formatearla y usarla (porque no es que siplemente no
le funcione sino que pisaría los datos útiles de la otra partición).


Btw, para cuando el sacar la regla anti-top posting? a estas alturas, la
Post by Federico Budassi
cultura ha cambiado suficiente para permitirlo, bah, eso creo ;-)
El top-posting dificulta seguir el hilo de una conversación. Cuando hay
pocas conversaciones el top posting es mejor porque ya sabés de qué se
estaba hablando y no te interesa releerlo, así que mirando la parte inicial
del mensaje basta. Pero cuando estás en muchas conversaciones al mismo
tiempo, o agarrás la conversación después de empezada, el bottom-posting te
permite tenerla ordenada en la forma natural en la que se habla. Por eso se
puso la regla y yo creo que el motivo sigue siendo válido, ¿no?
--
Qapla'
Alejandro Vargas
Alejandro Vargas
2013-05-23 08:12:26 UTC
Permalink
Post by ArYiXb
Eso va a ser para la version destructiva, esto es sólo lectura y funciona
con el que tengo.
Estás seguro que sólo leer sin comparar detecta bien el final de la
memoria? Ya lo probaste?
Post by ArYiXb
Lo que tengo pensado hacer es grabar cada 1M un patron, vaciar los flujos
de datos, releer para verficar la memoria,
No debería ser necesario. Sólo necesitás detectar cuándo da la vuelta y
comienza de nuevo desde el princiío. Eso se puede hacer sólo leyendo pero
primero hay que leer el primer sector y después ir leyendo (no es necesario
leer sector por sector sino que se pueden saltar de bloques de tamaño
razonable) hasta encontrar lo mismo que había en el primero. Es muy poco
probable encontrate una copia idéntica de la tabla de particiones por el
medio de un filesystem, así que ahí tenés una coincidencia sospechosa.

Al obtener una posible repetición, se puede hacer la prueba "semi
destructiva" que sería grabar en un lugar y leer en otro a ver si se lee lo
mismo. Después se puede restaurar lo que había para no perder nada.
--
Qapla'
Alejandro Vargas
Martín Ferrari
2013-05-22 19:41:45 UTC
Permalink
Post by ArYiXb
Al buscar en inet me encontre con soluciones windozamente cerradas.
He aquí una versión no destructiva y sólo lectura de lo que podria ser un
programa.
Esto hace lo mismo:

dd if=/dev/sdb of=/dev/null

:)
Loading...