No experience here, but I'll bite. Have the application call home for
authorization with an anonymous device fingerprint and a license key
set up during installation. It's not too big of a job for an AWS
Lambda function or similar if you don't want to run a server. Allow
users the option replacing one fingerprint with another when they get
a new machine, and rate limit the fingerprint changes if abuse turns
out to be that much of a problem.