Hacker News new | ask | show | jobs
by ejfox 3307 days ago
Personally, I'd prefer a 14-day trial with all functionality that stops working after the allotted period.
1 comments

How do these work? Does it drop a secret file on your computer somewhere that says "installed at timestamp X"? Does each download include "downloaded at timestamp X" as part of the app (so the user can just download it again)? Does it send some piece of data back to the server saying "person X started the trial at time Y"?

I'm leaning towards a partially-featured free version that works for all time, but I'm willing to be convinced otherwise.

How do these work?

Some alternatives:

- secret key file

- some kind of hashing/crypto. Something like a hash of <email>:<version1>:<yoursecrethash> and check against the customers keyfile. Advantage: the file doesn't need to be secret, customer will have to sign up and get a keyfile by mail. (Of course those who want to hack will just find and nop out the relevant assembly instructions)

- check online for valid license (can be also be patched out easily unless you really put some effort into it)

- of course there is hardware keys which again can be easily circumvented unless you put some effort into the implementation

I'm leaning towards a partially-featured free version that works for all time, but I'm willing to be convinced otherwise.

Disadvantages on time limited:

People will find a way to reset all settings, reinstall and use it for another 14 days.

Disadvantages on feature limited:

Those who only need the limited feature set has it forever - those who need the extended features won't get a chance to test them.

I'm leaning towards full featured, time limited. Those who want to hack it will havk it anyway.

The safest way is to create a version with features literally stripped out, not just hidden behind a boolean. (Rolling your own DRM is akin to rolling your own cryptography, it probably won't be very effective to malicious actors)

This won't stop someone buying your app, cracking and releasing it, but it means they will have to spend at least $30 to do so.

Checking a secret file is probably the easiest option. Of course anything is hackable, but the again it's probably easier for someone to just hack the full version of your app, depending on how you protect that.
If you're serious about licensing your app outside of the app store (the app store doesn't allow custom licensing systems), I'd love to chat about what your needs are. I'm the founder of an app licensing API called Keygen[0] that supports feature-licenses. :)

[0]: https://keygen.sh