I know there is already present similar questions on SO. But my question is more theoretical.
I'm wondering, is it possible to design a foolproof trial system? By foolproof I mean such a system which cannot be cracked even if a cracker knows the algorithm of such a system?
Sorry if it is not a programming question.
Edit: I think I should make my question more practical. I'm asking about a whole system, not standalone application. System consists of PC with Linux OS and some hardware connected to it. Maybe I can use an HDD encryption?
Probably the only way is an Internet-based "software as a service" application. If you don't provide access, they're not using the software. If it is a desktop-based application, then some key piece of functionality would still have to be on an online server somewhere.
If the hacker has the entire application on their local machine, it can be reverse engineered and "cracked" in some fashion. The only way to overcome this is to assure that some part of the functionality is never on their machine.