Protect an executable / application for licensing
===

I was considering the various options that i have when i want to protect a generic chunk of data to apply this principles to the distribution of a generic application.

 - Encryption doesn't make sense, it's like giving something unusable for the user or i have to give both the encrypted file and the key do decrypt it which make even less sense.
 - Generating entropy does not make sense because this process will only re-arrange the data in other way without breaking the business logic of the application.
 - Wrapping my application in an executable that requires a password to the user, my real application and my wrapper are double-linked and if my wrapper does not gives a green light my application will not run.
 - Web based distribution like the popular "Steam" service with a customized compilation for every user based on some login/ID verification.

What are the other options? I know that this will not end up with a definitive solution but at least i want to avoid the user to just redistribute my application with a simple copy and paste and i want to have at least a small edge over the software distribution system.