Es ya posible utilizar HardwareID con FWH?

Es ya posible utilizar HardwareID con FWH?

Postby RodolfoRBG » Sat Feb 11, 2012 11:13 pm

Buscando otra forma de proteger los sistemas, ademas de con una memoria USB, encontre en el foro un apunte que data del 2008 relacionado a utilizar un DLL llamado HardwareID anunciado en: http://www.azsdk.com/hardwareid.html y que se me haria excelente para obtener el numero de serie fisico del CPU y con eso proteger los sistemas que desarrollamos.

A 4 años de eso, es ya posible utilizarlo con FWH?

Intente usar el numero de serie de la tarjeta de red pero he tenido algunos problemas, en un caso concreto la maquina del cliente me regresaba un arreglo con 3 tarjetas de red diferentes. Utilize el numero de serie del 1er elemento del arreglo y dias despues, no se porque, desaparecio y ahora me regresa un arreglo con solo las otras 2 tarjetas de red y por lo mismo mi sistema ya no lo autorizaba a trabajar. Quiero evitar que me suceda eso nuevamente y por lo mismo buscaria utilizar mejor la serie del CPU.
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Es ya posible utilizar HardwareID con FWH?

Postby Willi Quintana » Sun Feb 12, 2012 2:46 am

Hola... prueba con esto,,,,,
Code: Select all  Expand view  RUN

Function WMainInfo()
LOCAL  oDatos, oSrv, oJob, i
LOCAL    nFree:= ""
LOCAL     oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
LOCAL   objWMI:= oLoc:ConnectServer()

LOCAL oSistema:= objWMI:ExecQuery("Select * from Win32_PhysicalMedia")
LOCAL   oDisco:= objWMI:ExecQuery("Select * from Win32_LogicalDisk")
LOCAL   oParti:= objWMI:ExecQuery("Select * from CIM_DiskPartition")
LOCAL  oDisket:= objWMI:ExecQuery("Select * From Win32_LogicalDisk Where DeviceID = 'A:'")
LOCAL   objUnd:= objWMI:ExecQuery("Select * from Win32_MappedLogicalDisk")
LOCAL     oUnd:= objWMI:ExecQuery("Select * from Win32_CDROMDrive")
LOCAL  oResolu:= objWMI:ExecQuery("Select * from Win32_DesktopMonitor")
LOCAL  oSistem:= objWMI:ExecQuery("Select * from Win32_OperatingSystem")
LOCAL   oUsers:= objWMI:ExecQuery("Select * from Win32_Account")
LOCAL    oServ:= objWMI:ExecQuery("Select * from Win32_Service Where Name = 'Themes'")
LOCAL    oTime:= objWMI:ExecQuery("Select * from Win32_LocalTime")
LOCAL    oProc:= objWMI:ExecQuery("Select * from Win32_Processor")
LOCAL     oJbs:= objWMI:ExecQuery("SELECT Product, SerialNumber FROM Win32_BaseBoard")
LOCAL   oIpSet:= objWMI:ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
LOCAL   oList := objWMI:ExecQuery("Select * from Win32_ComputerSystem")

//Return(Nil)
objWMI:= oLoc:ConnectServer()
oJbs := objWMI:ExecQuery( "select * from Win32_BaseBoard" )
//oSrv:ExecQuery( "SELECT * FROM Win32_BaseBoard" )


FOR Each oDatos In oSistema
    MsgInfo("Serial de fabrica: " + ALLTRIM(cValToChar(oDatos:SerialNumber)),"Numero de serie del disco duro")
NEXT



FOR Each oDatos In oDisco
    MsgInfo("Unidad: " + ALLTRIM(cValToChar(oDatos:Name)) + "\  Serial: " + ALLTRIM(cValToChar(oDatos:VolumeSerialNumber)),"Unidad y serial lógico de las unidades de disco")
NEXT



FOR Each oDatos in oParti
    MsgInfo(ALLTRIM(cValToChar(oDatos:Name)) + " - Tamaño: " +ALLTRIM(cValToChar(oDatos:Size)) + " En: " + ALLTRIM(cValToChar(oDatos:SystemName)) + " - Tipo: " + ALLTRIM(cValToChar(oDatos:TYPE)),"Particiones disponibles")
NEXT



FOR Each oDatos in oDisket
    nFree:= oDatos:FreeSpace

   IF VALTYPE(nFree) = "U"
         MsgInfo("No hay diskete en la unidad A:\","Aviso del WMI de Windows")
   ELSE
         MsgStop("
Hay un diskete en la unidad A:\","Aviso del WMI de Windows")
   ENDIF

NEXT



FOR Each oDatos In objUnd
    MsgInfo("
Device ID: " + oDatos:DeviceID +" Nombre: " + oDatos:Name +" Espacio Libre: " + cValtoChar(oDatos:FreeSpace) + " Tamaño: " + cValtoChar(oDatos:Size),"Lista de unidades Mapeadas en Mi PC")
NEXT



FOR Each oDatos in oUnd
    MsgInfo("
Unidad: " + oDatos:Drive + " " + "Nombre: " + oDatos:Caption,"Unidades de CD instaladas en el equipo")
NEXT



FOR Each oDatos in oResolu
   MsgInfo("
Trabajando a Resolución de Alto: " + cValToChar(oDatos:ScreenHeight) + "  y Ancho: " + cValToChar(oDatos:ScreenWidth),"Resolucion de Panralla")
NEXT



FOR Each oDatos In oSistem
    MsgInfo(oDatos:InstallDate,"
Fecha de Instalación de Windows XP")
NEXT



FOR Each oDatos in oSistem
    MsgInfo("
Directorio de Windows es: " + oDatos:WindowsDirectory +"  Directorio del Sistema es: "+ oDatos:SystemDirectory,"Directorio de Windows y del Sistema")
NEXT


/*
FOR Each oDatos in oUsers
    MsgInfo(cValToChar(oDatos:Name) + "
- " + cValToChar(oDatos:Caption),"Lista de Usuarios de Windows")
NEXT



MsgInfo("
Deshabilitarndo los Themes en Windows XP")
FOR Each oDatos in oServ
    oDatos:StopService()
    SysRefresh()
NEXT



MsgInfo("
Habilitando los Themes en Windows XP")
FOR Each oDatos in oServ
    oDatos:StartService()
    SysRefresh()
NEXT

*/

FOR Each oDatos in oSistem
    MsgInfo(oDatos:Caption + "
" + oDatos:VERSION,"Sistemas operativos instalados en el PC")
NEXT



FOR Each oDatos in oTime
     MsgInfo( "
Día: " + cValToChar(oDatos:DAY) + CRLF +;
              "
Día de la semana: " + cValToChar(oDatos:DayOfWeek) + CRLF +;
              "
Hora: " + cValToChar(oDatos:Hour) + CRLF +;
              "
Minutos: " + cValToChar(oDatos:Minute) + CRLF +;
              "
Mes: " + cValToChar(oDatos:MONTH) + CRLF +;
              "
Segundos: " + cValToChar(oDatos:Second) + CRLF +;
              "
Semana en el mes: " + cValToChar(oDatos:WeekInMonth) + CRLF +;
              "
Año: " + cValToChar(oDatos:YEAR),"Dia, Hora, Mes y Año desde WMI")
NEXT


FOR EACH oDatos IN oProc
        MsgInfo("
El Nombre del Procesador es: "+Alltrim(cValtoChar(oDatos:Name)),"Desde WMI")
        MsgInfo("
la Velocidad Actual del Procesador es: "+Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz","Desde WMI")
        MsgInfo("
la Velocidad Màxima del Procesador es: "+Alltrim(cValtoChar(oDatos:MaxClockSpeed)) + " Mghz","Desde WMI")

NEXT


FOR EACH oDatos IN oJbs
        MsgInfo("
El Tipo de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:Product)),"Desde WMI")
        MsgInfo("
El Número de Serie de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:SerialNumber)),"Desde WMI")
NEXT

FOR EACH oDatos IN oIPSet
  MsgInfo("
El IPAddress es: "  + Alltrim(cValtoChar(oDatos:IPAddress(0))), "Desde WMI")
  MsgInfo("
El MacAddress es: "  + Alltrim(cValtoChar(oDatos:IPAddress(1))), "Desde WMI")
NEXT

FOR EACH oDatos IN oList
    If oDatos:PartOfDomain
       MsgInfo("
Dominio: " + oDatos:Domain, "Desde WMI")
      Else
       MsgInfo("
Grupo de Trabajo: " + oDatos:Domain, "Desde WMI")
    EndIf
Next

Return nil

User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Es ya posible utilizar HardwareID con FWH?

Postby RodolfoRBG » Tue Feb 14, 2012 3:25 am

Mi estimado Willi,

Gracias por tu respuesta, desgraciadamente el dato que mas me interesa es el Número de Serie de la MotherBoard y al correrlo ese dato me lo deja en blanco. Tengo WVista. Necesito algo mas?, agregarle alguna dll u otro componente?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Es ya posible utilizar HardwareID con FWH?

Postby Antonio Linares » Tue Feb 14, 2012 9:47 am

Rodolfo,

Te aparece el MacAddress ? Tal vez puede servirte ese serial que identifica a la tarjeta de red
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Es ya posible utilizar HardwareID con FWH?

Postby pablovidal » Tue Feb 14, 2012 11:26 am

Rodolfo, Prueba esto:
Code: Select all  Expand view  RUN
Static Function SerialProtect()
//-----------------------------------------------------------
local oLoc := CreateObject( "wbemScripting.SwbemLocator" )
local oSrv := oLoc:ConnectServer(,"root\cimv2")
local aDrives := oSrv:ExecQuery( "SELECT * FROM Win32_ComputerSystemProduct" )
local oDrive, cSerial := ""
Local aData  := {}

 for each oDrive in aDrives
  AADD( aData, oDrive:UUID )
 Next

 For nAt := 1 to Len( aData )
  cSerial += Upper( AllTrim( cStr( aData[nAt] ) ) )
 Next nAt

Return( cSerial )
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: Es ya posible utilizar HardwareID con FWH?

Postby Willi Quintana » Tue Feb 14, 2012 2:16 pm

Hola Rodolfo,,, Te comento que lo que publique, funciona en XP y en W7,,, la verdad es que nunca use WVista, y no requiere nada mas que lo indicado,,,,
Salu2
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Es ya posible utilizar HardwareID con FWH?

Postby horacio » Tue Feb 14, 2012 3:32 pm

A mi me sucede lo mismo, el nro de serie del mother me sale en blanco, mi OS es windows 7 home premium
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Es ya posible utilizar HardwareID con FWH?

Postby RodolfoRBG » Tue Feb 14, 2012 4:54 pm

Antonio, gracias por tu sugerencia, el problema con la tarjeta de red es que me sucedio con un cliente que originalmente GetNetCardID() me regreso un arreglo con 3 tarjetas de red, tome como referencia la primera, pero no se porque, dias despues la 1ra ya no aparecia, solo las otras 2 por lo que ya no me servia de referencia y esto de proteger los sistemas en base a uno de estos datos es algo muy delicado por lo que debo tener la seguridad de que siempre me regrese el dato correcto antes de asumir que el cliente intento hacer una copia ilegal en otra maquina.

Willi, veo que no soy el unico al que le regresa un dato en blanco, de todas formas gracias por tu interes.

Pablo, tu funcion funciono perfectamente en WVista y me regresa una cadena de 36 caracteres. Mis preguntas son:
* Ese numero de serie es del Disco Duro? Del CPU o de que?
* Con que Windows funciona?
* Es confiable? Esto es, lo usas tu para proteger tus programas?

'chas gracias
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Es ya posible utilizar HardwareID con FWH?

Postby pablovidal » Tue Feb 14, 2012 10:07 pm

Pablo, tu funcion funciono perfectamente en WVista y me regresa una cadena de 36 caracteres. Mis preguntas son:
* Ese numero de serie es del Disco Duro? Del CPU o de que?
-- Es un numero unico de identificación

* Con que Windows funciona?
-- Desde Windows 2000 en Adelante (creo)

* Es confiable? Esto es, lo usas tu para proteger tus programas?
-- Si, es confiable, lo uso para proteger mi programa.
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: Es ya posible utilizar HardwareID con FWH?

Postby RodolfoRBG » Wed Feb 15, 2012 5:42 am

Perfeeeecto Pablo,

Sabiendo que tu ya lo usas para proteger tus programas me da mucha seguridad, sinembargo me gustaria saber mas con lo que estaria trabajando:

* Es un numero unico de identificación de que? Del CPU, Del Disco Duro?
* Esta identificacion cambiaria si formatean el disco duro o lo cambian? Si cambian la tarjeta de red? O en que circunstancias cambiaria?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Es ya posible utilizar HardwareID con FWH?

Postby pablovidal » Wed Feb 15, 2012 11:42 am

Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: Es ya posible utilizar HardwareID con FWH?

Postby RodolfoRBG » Wed Feb 15, 2012 4:30 pm

Don Pablo, excelente aporte al foro en especial para quienes buscamos proteger nuestros sistemas. Gracias por compartir tus conocimientos.
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 56 guests