BY HARDWARE(HARD DRIVE SERIAL#)
BY INTERNET(LIKE WINDOWS XP)
When you activate XP over the internet it uses a hash table of things like NIC MAC addresss, CPUID, Hard drive Vital Product Data, amount of RAM etc. and writes an encrypted Registry value based on that hash and continually checks the current hardware.
There's an activation topple point in XP too. Change enough things and the software will deactivate itself.
I think three license migrations per copy is not only reasonable... It's generous.