Es WMI una buena forma de hacer una huella digital de hardware?

Quiero hacer una instalación de Windows implementada en C ++ que verifique la huella digital del hardware (para verificar que el usuario usará la aplicación solo en su computadora). Después de una investigación neta, decidí que WMI es mi herramienta. Comencé con una aplicación MFC simple y, para empezar, quería imprimir el número de serie de la placa madre. Y justo en este punto todo se derrumbó. Revisé XP y Win7 y esta propiedad no se devuelve. Y esto me hizo pensar: ¿qué pasa si hay algunas clases / propiedades que no funcionan en ciertas versiones de Windows? ¿O algunas configuraciones de hardware? Sinceramente no me gusta eso. Mi idea instantánea para la huella digital fue la dirección MAC (mi aplicación está estrictamente controlada por la red, por lo que si la máquina no tiene una conexión de red, no sirve de nada). Sin embargo, algunas máquinas pueden tener varios dispositivos MAC. Y algunos de los MAC pueden ser virtuales y desaparecer del sistema después de la desinstalación (es decir, el cliente VPN). Creo que la dirección MAC se puede cambiar fácilmente, pero si codifico el número, el usuario puede no darse cuenta de que lo usa. Así que le pido su consejo: ¿es WMI una buena herramienta para la huella digital de hardware? Si es así, ¿qué clases / propiedades sugeriría usar? Deberían funcionar en todas las máquinas y sistemas y también ser seguros / inmutables al mismo tiempo (está bien, no podemos hacer mucho si el usuario cambia todo el hardware ...) Si WMI no es una buena solución, ¿qué otro marco de C ++ sugeriría? ? Y a continuación, qué propiedades de HD usar entonces.

Respuestas a la pregunta(4)

Su respuesta a la pregunta