I'm currently developing a commercial Java application, where I'm doing my best to protect it against cracking.
I have couple of thoughts that I wish someone a bit more experienced in the field could help me clearing them.
I'm protecting my software with a Server/Client License System.
Simple explanation of how the License works:
- User purchase the software online, and get emailed with hist License Hash.
- User download the software, and enters the License Hash provided in the email
- Software checks online if the license is used before, if not, mark it as used and link the User's HardwareID to it in the database. Next time user login, the server checks his HWID to the provided License, if not valid kick the user out of the software.
- After successfully authenticating, the software downloads and load variables from the server that the software cannot run without.
- My software constantly checks the server for variables (step 4) and never loads them all at once.
Communication between Server/Client is made using a secured SSL REST API.
My software is Obfuscated/protected using Proguard.
Is this method good enough as a protection against cracking, if not could you provide some extra tips to make this method better ?
Thanks a lot.