There are any number of strategies you can try to use to prevent copying
of your program.
But. As Stefan has already pointed out to you, making an application
"piracy proof" is not possible. If you deliver the code to a customer,
there will _always_ be the theoretical possibility of them copying it.
Whether a specific customer has the technical know-how to do that, is a
separate question. But it's not possible to guarantee that software
delivered to a customer can't be copied.
It's hard for me to imagine someone who is literally "desperate to avoid
piracy" of their software. What makes you so desperate? Do you havea
loved family member being held hostage, and the only way to get them back
is to keep your program from being pirated? Or maybe there's a bus
somewhere that has a bomb on it, and if your software is pirated, the bomb
will be armed and the bus's cruise control locked at 50 mph?
The fact is, if your market is so small that you have a _specific_
customer in mind who you suspect would copy your software, what you've got
is a people problem, not a software problem. That's a market so small
that if someone is using your software in an unauthorized manner, it
should be easy enough for you to know simply because they aren't buying a
license you know they should be buying. And you should deal with a
situation like that by asserting your legal rights, rather than wasting
time on copy protection that may not be effective.
Keep in mind also that copy protection that has the possibility of a
failure mode in which it incorrectly detects the software as being pirated
will generally _lead_ to illegal copying that otherwise would not have
occurred. Customers really don't like it when they pay good money for a
product only to have that product refuse to work, and they start figuring
out that a hacked version without the copy protection (i.e. a pirated
version) is a better deal. Even in a small market where a hacked version
is less likely to be created, it can easily lead to lost sales. And if
you have only one customer, that can be _really_ bad for business.
These are just a handful of the strong arguments against wasting time on
copy protection.
You need to ask yourself: "what is it about my business model that would
lead my customer to pirate my software". Then address _that_. Trying to
lock down the software itself is full of heartbreak and misery, and can
only lead to disappointment.
Pete