Простая идея (1):
Я предполагаю, что у всех ваших клиентов есть какой-то уникальный идентификатор (серийный номер, номер лицензии). Когда вы законно предоставляете BPL одному из своих клиентов, дайте ему два файла: сам BPL + файл, который содержит хэш имени BPL + номер лицензии пользователя. Если хеш не может быть проверен, не загружайте BPL. Удостоверьтесь, что вы не хэшируете сам BPL, у вас будут расстроенные клиенты, которые не могут использовать ваш BPL, потому что они подхватили вирус!
Простая идея (2):
Сделайте так, чтобы ваш BPL экспортировал функцию, которая выглядит следующим образом function OkForClient(ClientID:string):Boolean
. Это позволяет изменить проверку с BPL на BPL.
Сложная идея:
Потратьте неделю на изучение асимметричного шифрования, чтобы заменить хеш-файл в первом варианте чем-то, что не может быть воспроизведено злоумышленником, даже если он знает алгоритм.