Вам нужно определить, что вы в настоящее время называете «машиной».
Если я заменю процессор, память и жесткий диск, это все тот же компьютер? Сетевой адаптер, видеокарта?
Что определяет машину?
Существует множество библиотек лицензий, которые могут сделать это для вас, но почти все они платные (потому что, якобы, вы когда-нибудь захотите защитить коммерческое программное обеспечение таким образом). Узнайте, что RSA, Verisign и даже Microsoft могут предложить. Windows API не раскрывает это, якобы для предотвращения взлома.
Альтернативно, сделай это сам. Это не сложно, сложная часть - определить, что вы считаете машиной.
Если вы решили отследить 5 вещей (HD, сетевая карта, видеокарта, материнская плата, карты памяти) и разрешить 3 изменения, прежде чем требовать новую лицензию, тогда пользователи могут дублировать жесткий диск, выньте два из вышеперечисленных, поместите их в новую машину, замените их новыми деталями в старой машине и запустите программу на двух отдельных компьютерах.
Так что это требует некоторой мысли.
-Adam