Хэш(хэш(S/N флешки)+хеш(UUID раздела на флешке))
или что-нибудь в этом роде. Конкретный алгоритм хеша - по выбору разработчика. Можно еще контрольную сумму от исполняемого файла добавить. Или вычесть. Или умножить... и т.п. Плюс парочка ложных хэшей, вычисляемых по другим формулам для запутывания взломщиков.
Скопировать можно, но каждый экземпляр программы запускается лишь при наличии конкретной флешки. Не только при копировании файлов, но и при клонировании раздела с флешки не пройдёт проверку и не запустится.
Как любое применение принципа
security through obscurity, будет хреновой защитой от хорошего специалиста. Но услуги хакеров стоят дорого, а рядовые сисадмины не хотят (и обычно не умеют) ковыряться в отладчике. Так что на практике такая "защита из г-на и палок" имеет шанс на успех, если цена лицензионного ПО будет не слишком высокой.