Как защитить программу от копирования?
Никак. Все проверки лицензии и прочая шняга сводится в итоге к условному переходу в коде программы, который принимает решение лицензионная она или нет. Вот этот момент ловится отладчиком и условный переход превращается в безусловный и все.
Я не програмист, но как показала практика тех же игр - автономно никак. Разве что требовать соединения с инетом раз в какое то время и проверять уникальные ID системы