Saber Serial de Memoria USB (Flash Drive o PenDrive)

6,308 views
Skip to first unread message

Ing.Daniel Bojorge

unread,
Mar 16, 2013, 1:34:13 PM3/16/13
to mundovis...@googlegroups.com, publice...@googlegroups.com
Hola a tod@s.

Donde trabajo me delegaron la función de bloquear el uso de memorias USB (o como le digan Flash Drive, PenDrive), lo podría hacer con el registro de windows o en el CMOS de cada pc, pero tengo un problema, no sólo se utilizan memorias USB, sino también otros dispositivos USB, tales como teclado, mouse, lectores de código de barra, balanzas, lectoras de tarjetas, etc, etc. Que si bloqueo el puerto USB ya sea vía registro de windows o CMOS, deshabilitaría lo que si se requiere usar.

Para tal caso y apoyándome en el antivirus que tenemos, éste trae opción de bloquear el dispositivo de almacenamiento USB, con eso resuelvo todo, pero hay sectores donde se les dejará autorización de usar una memoria previamente registrada, el antivirus también permite esto, por lo que sólo es poner el número de serie de la memoria USB y darle los permisos (Bloqueo, Lectura, Lectura/Escritura).

Pero ahí vienen mis problemas, ¿cómo saber el número de serie de esas memorias? Investigando hice dos programas que se suponen hacen eso y los resultados son diferentes, como podrán ver en la imagen siguiente.

Imágenes integradas 2

Lo que está en texto consula es con una de las funciones que hice y el que está en el messagebox, es otra función, obviamente son programas diferentes, pero el problema principal es que el antivirus detecta otro serial y me pregunto, ¿cuál es lo más correcto?

El antivirus me lee esto:

Clase de dispositivo Almacenamiento en disco
Dispositivo Proveedor: Generic, Modelo: Mass Storage Device, Número de serie: 058F63666471


¿Qué podría hacer? Si no hago el programa, tendría que bloquear todas las USB y luego que conecten las memorias para ir viendo el serial que me da el antivirus, pero yo quería hacer un programa que desde mi pc metiera la memoria y me diera el serial, así de una sóla vez mando la tarea a la pc "víctima" donde bloqueo todo, menos la memoria autorizada.

Los programas que usé son:

Function Serial2
* Set Step On
Local objWMI,cCadWMI,oSistema,Salida
objWMI = Getobject("winmgmts:\\")
cCadWMI = "Select * from Win32_LogicalDisk"
oSistema = objWMI.ExecQuery(cCadWMI)
Salida = ""

For Each Disco In oSistema
If !Isnull(Disco.VolumeSerialNumber)
Salida =  Salida + "Unidad: " + Disco.Name + " Serial: " + Disco.VolumeSerialNumber + Chr(13)
Endif
Next

Return Salida
Endfunc


Function Serial3
Parameters lDrv


If Vartype(lDrv)#"C"
lDrv = ""
Endif

Local Obj,objDrive,Drv

Obj = Createobject("Scripting.FileSystemObject")


For Each Drv In Obj.Drives
If Drv.Isready

If !Empty(lDrv)
If Upper(lDrv) = Drv.Driveletter
? "Drive Letter: "
?? Drv.Driveletter
*SET STEP ON
? "Serial Number: "
?? Transform(Drv.Serialnumber,"9999999999999999999")
? "Drive Type: "
?? Drv.Drivetype
? "File System: "
?? Drv.FileSystem
? "Free Space: "
?? Drv.FreeSpace / 1024
?? " kb"
? "Total Size: "
?? Drv.TotalSize / 1024
??" kb"
? "Volume Name: "
?? Drv.VolumeName
? "---------"
Endif
Else
? "Drive Letter: "
?? Drv.Driveletter
*SET STEP ON
? "Serial Number: "
?? Transform(Drv.Serialnumber
? "Drive Type: "
?? Drv.Drivetype
? "File System: "
?? Drv.FileSystem
? "Free Space: "
?? Drv.FreeSpace / 1024
?? " kb"
? "Total Size: "
?? Drv.TotalSize / 1024
??" kb"
? "Volume Name: "
?? Drv.VolumeName
? "---------"

Endif
Endif
Next

Endfunc


Serial3 es el que responde en la consola y Serial2 en el messagebox.






Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
www.debsconsultores.com
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)
usb.jpg

edgar suarez kummers

unread,
Mar 16, 2013, 1:53:43 PM3/16/13
to mundovis...@googlegroups.com, publice...@googlegroups.com
Estimado Ingeniero Daniel Bojorge:

Yo ya había predicho ese comportamiento de los lectores de seriales, bajo windows 7 (no lo sé) pero en el windows 8 hace FLIP y luego hace FLOP, o sea cuando quiere lee algo así como PADRE y cuando le da la gana lee DREPA para poner un ejemplo.

Te sugiero que con la lectura del serial crees un algoritmo que diga por ejemplo: 
Tiene la P 
Tiene la A
Tiene la D
Tiene la R
Tiene la E

Sí, en general quiere decir PADRE o DREPA o ADPRE etc .... 

Yo utilizo un lector en MS-DOS y creía que lo había resuelto, pero el dichoso WINDOWS 8 me tomaba la delantera hasta que espada en mano lo derroté con un algoritmo, me quería hacer la CONFUCIO y finalmente creo que perdió ... PUFFF ... recuerda a la reina de belleza que le preguntaron quien era CONFUCIO y dijo que el que inventó la CONFUSIÓN .... 

saludos

Please look my LINKS --- What I offer ---








edgar suarez kummers
ingeniero electrónico
matrícula 11714
diseño de software y ensamble de cuadros de control
cel Colombia: 3176992038
tel fijo Bogotá: 3126100


--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

usb.jpg

Víctor Hugo Espínola Domínguez

unread,
Mar 16, 2013, 3:29:34 PM3/16/13
to publicesvfoxpro
Hola Daniel

El número 2048483860 convertido a hexadecimal es "7A196214"

Saludos,
Víctor.

usb.jpg

Luis Mata

unread,
Mar 18, 2013, 10:14:33 AM3/18/13
to mundovis...@googlegroups.com, publice...@googlegroups.com
Yo solucione este problema con el Active Directory.
Con respecto a controlarlo el acceso por serie de dispositivo, ummm no se, se supone que eso lo bloqueas por temor a los virus, mientras el usuario tenga un USB con tu serie controlada, se va a una cabina publica y te trae el virus, no hay protección contra eso.
eso ya seria bajo responsabilidad del usuario.
image
 


logo2 Mata Figueroa, Luis A.
Procesos y Tecnología
TELF: (00 51 1) 617-4667
RPC : (00 51) 993597297
lm...@cclf.com.pe
www.cclf.com.pe
imgfrm

image[2].png
logo2[3].png
imgfrm[3].png
usb.jpg

Ing.Daniel Bojorge

unread,
Mar 18, 2013, 10:43:54 AM3/18/13
to publice...@googlegroups.com
Gracias Víctor Hugo.

Luis Mata, muy buena forma de resolverlo, ya el antivirus (uso el EndPoint) bloquea el acceso a todo, menos a los autorizados, como las memorias del departamento de informática y una que otra autorizada, pero para que no queden tan "impunes", el antivirus inicia la exploración desde que se inserta el dispositivo, algo es algo, no hay protección 100%.

Evaluaré esta opción que me das.  Muchas gracias,.



Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
www.debsconsultores.com
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)


imgfrm[3].png
logo2[3].png
image[2].png
usb.jpg

Víctor Hugo Espínola Domínguez

unread,
Mar 18, 2013, 11:04:43 AM3/18/13
to publicesvfoxpro
Hola Daniel

En la función Serial2 prueba cambiando la línea:

cCadWMI = "Select * from Win32_LogicalDisk"
por :
       
        cCadWMI = "Select * from Win32_PhysicalMedia"

Saludos,
Víctor.



El 16 de marzo de 2013 13:34, Ing.Daniel Bojorge <debs....@gmail.com> escribió:
usb.jpg
Reply all
Reply to author
Forward
0 new messages