Título: SOS Leer Serie Procesador Publicado por: siliconplus en 25 Abril 2012, 18:41 pm Amigos... Llevo tiempo programando y no he podido encontrar la dll para leer la serie EXACTA del procesador...
Existen sequencias en VB tales como Set swService = GetObject("winmgmts:") Set swCpuSet = swService.ExecQuery("Select * from Win32_Processor") Set swMemSet = swService.ExecQuery("Select * from Win32_PhysicalMemory") que dan la serie del procesador o de la placa madre que ha sido grabada en el registro de Windows al momento de instalarse. El problema surge cuando se clona el disco del PC a otro PC, por ende, se clona el registro. Por lo tanto el segundo PC no arroja la verdadera serie del procesador ni menos la serie de la placa madre. Otro ejemplo similar es cuando llegan 20 PC nuevos, y todos vienen clonados y son similares pero ID.de procesador diferentes , y al ejecutar los comando de VB WIN32_Processor.. todos me devuelven el mismo ID de procesador... :-\ ¿Como podría leer la serie del procesador actual? ( y no el clon). Sé que se podia usando assembler (pero soy ignorante de ese lenguaje) y el tiempo apremia... :-( De antemos gracias a todos... Título: Re: SOS Leer Serie Procesador Publicado por: Miseryk en 26 Abril 2012, 16:19 pm Hola, me interesa ese tema, me podrías decir a qué te refieres exactamente?; y si es posible un ejemplo con resultado, a ver si puedo ayudar en algo. (Y)
Título: Re: SOS Leer Serie Procesador Publicado por: siliconplus en 26 Abril 2012, 17:04 pm Aqui te envio la funcion propiamente tal...
Dim BiosSet As Object Dim bios As Object ' ' LEEMOS LA IDENTIFICACION DE LA PLACA MADRE ' Set BiosSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BIOS") On Local Error Resume Next ' ' ARCHIVO QUE CONTENDRÁ LA INFORMACION QUE LEEREMOS ' open "DatosBios.txt" for output as #1 For Each bios In BiosSet Print #1, "PrimaryBIOS : " & bios.PrimaryBIOS & vbLf & "Status; " & bios.Status & vbLf For cnt = LBound(bios.BIOSVersion) To UBound(bios.BIOSVersion) Print #1, " BiosVersion: " & bios.BIOSVersion(cnt) & vbLf Next Print #1, "Caption: "; bios.Caption & vbLf Print #1, "Description: "; bios.Description; vbLf Print #1, "Name: "; bios.Name; vbLf Print #1, "Manufacturer: "; bios.Manufacturer; vbLf Print #1, "ReleaseDate: "; bios.ReleaseDate; vbLf Print #1, "SerialNumber: "; bios.SerialNumber; vbLf Print #1, "SMBIOSBIOSVersion: "; bios.SMBIOSBIOSVersion; vbLf Print #1, "SMBIOSMajorVersion: "; bios.SMBIOSMajorVersion; vbLf Print #1, "SMBIOSMinorVersion: "; bios.SMBIOSMinorVersion; vbLf Print #1, "SMBIOSPresent: "; bios.SMBIOSPresent; vbLf Print #1, "SoftwareElementID: "; bios.SoftwareElementID; vbLf Print #1, "Version; "; bios.Version; vbLf Print #1, "InstallableLanguages; "; bios.InstallableLanguages; vbLf Print #1, "CurrentLanguage: "; bios.CurrentLanguage; vbLf Next 'For Each bios Dim cpuSet As Object Dim cpu As Object ' ' LEEMOS LOS PROCESADORES QUE TIENE ESTE PC ' Set cpuSet = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Processor") For Each cpu In cpuSet Print #1, "Processor Id: " & cpu.ProcessorId Print #1, "Maximum Clock Speed: "; cpu.MaxClockSpeed Print #1, "Availability: " & cpu.Availability Print #1, "AddressWidth: " & cpu.AddressWidth Print #1, "CpuStatus: " & cpu.CpuStatus Print #1, "CurrentClockSpeed: " & cpu.CurrentClockSpeed Print #1, "MaxClockSpeed: " & cpu.MaxClockSpeed Print #1, "L2CacheSize: " & cpu.L2CacheSize Print #1, "L2CacheSpeed: " & cpu.L2CacheSpeed Print #1, "VoltageCaps: " & cpu.VoltageCaps Print #1, "Name: " & cpu.Name Next close #1 '**************************************************** Despues al revisar el archivo DatosBios.txt me encuentro que dos o mas PC tiene la misma identificacion, es decir, un disco duro fue clonado y a cada uno le pusieron la imagen de otro PC. Talvez estos datos no son los reales en ningun PC, quizás a todos los pusieron la misma imagen de disco... :rolleyes: Entonces surge la pregunta... En algun momento de la historia, al instalar el SO, se debio leer los datos del HW original.. ¿Como lo hizo?. ¿Con que f(x)?.. Esto lo necesito para poder restringir el uso de programas en ciertos PC de modo que cada vez que se ejecute el programa vaya leer el HW del equipo y NO LA INFORMACION del hw que esta guardada en el disco (porque puede ser falsa o clonada)... ¿Me explico?... Espero que sirva de algo.. Título: Re: SOS Leer Serie Procesador Publicado por: Elemental Code en 26 Abril 2012, 21:34 pm Print #1, "Processor Id: " & cpu.ProcessorId
Print #1, "Maximum Clock Speed: "; cpu.MaxClockSpeed Print #1, "Availability: " & cpu.Availability Print #1, "AddressWidth: " & cpu.AddressWidth Print #1, "CpuStatus: " & cpu.CpuStatus Print #1, "CurrentClockSpeed: " & cpu.CurrentClockSpeed Print #1, "MaxClockSpeed: " & cpu.MaxClockSpeed Print #1, "L2CacheSize: " & cpu.L2CacheSize Print #1, "L2CacheSpeed: " & cpu.L2CacheSpeed Print #1, "VoltageCaps: " & cpu.VoltageCaps Print #1, "Name: " & cpu.Name Nada de eso es "Unico" Busca el numero de serie del disco duro, o la direccion MAC de la tarjeta de red. Esos son mas "unicos" Título: Re: SOS Leer Serie Procesador Publicado por: siliconplus en 26 Abril 2012, 23:07 pm la serie del disco duro se repite si es una imagen clonada (idem de ejercicio anterior)
:xD Por lo general la serie del disco no se utiliza porque si se quema o se cambia el disco por uno de mayor capacidad, el programa no se podra ejecutar en ese PC :-[ Print #1, "Processor Id: " & cpu.ProcessorId y Print #1, "Name: " & cpu.Name son UNICOS... un tipo de CPU tiene su ID unica dentro de su nombre (los dos campos van de la mano), pero si es una imagen clonada (el disco)... no me dá el procesador actual... :-( Título: Re: SOS Leer Serie Procesador Publicado por: siliconplus en 26 Abril 2012, 23:11 pm No me queda mas que leer la MAC... (por el momento).
La idea es tener dos variables fijas del PC por si falla una, es decir. Si se quemó la tarjeta madre, el procesador se mantiene.. aunque a estas alturas, cambiar la placa es sinonimo de cambiar todo... cpu, socket.,etc, etc... Lo mismo que si se quema el procesador... mmm nueva placa madre... :D ¿Algun link para leer la MAC?... :silbar: Título: Re: SOS Leer Serie Procesador Publicado por: Elemental Code en 27 Abril 2012, 17:46 pm si le hay
http://foro.elhacker.net/programacion_visual_basic/mgetmymac_posiblemente_la_peor_manera_de_obtener_la_mac_address-t314975.0.html Esta el mio que es feo arriba. Y mas abajo el de karcrack que se la banca. http://foro.elhacker.net/programacion_visual_basic/mgetmymac_posiblemente_la_peor_manera_de_obtener_la_mac_address-t314975.0.html;msg1560283#msg1560283 Título: Re: SOS Leer Serie Procesador Publicado por: siliconplus en 27 Abril 2012, 19:50 pm Gracias.. !!!
;-) Antes yo igual usaba batch... y como se detallan en los post siguientes tambien tenia ciertos problemitas.. pero servía igual. En todo caso era el inicio hacia el hackeo y crackeo leyendo resultados de otros comando y enlazandolos.. etc, etc. Queda pendiente.. si seria posible leer la serie del procesador jejeje Gracias... Título: Re: SOS Leer Serie Procesador Publicado por: DarkMatrix en 29 Abril 2012, 06:57 am Yo intente eso de leer el ID del procesador, creo que con WMI es la peor forma, algunas veces me devolvia nulo y otras tambien me devolvia Seriales repetidos en pcs diferentes, tambien probe el serial del disco, funciona pero algunos devuelven ID nulo no se porq :S, hasta ahora no he encontrado otra forma de obtener un identificador unico para cada pc :S
|