1

I am developing software. For some products I'd like to apply a time limited demo version. To achieve that, I'd like to apply a "simple" tool in a post build step to make the normal product a demo version.

I asked a similar question on Stack Overflow before, but it seems there is no possibility to achieve the same with Code signing.

The tool should

  1. limit the time a target application can be started

    • to a fixed date I specify at compile time
    • or to a relative date from the first application start
    • or to a number of application startups

    (I don't really care about the trial model)

  2. run as a post build step (not require code in my application)
  3. not need a license key input like Application Trial Maker, since I don't want have overhead managing the demo licenses
  4. provide some attempts to prevent cracking (not only one indicator, e.g. use a file, Registry and alternate data streams) and survive a deinstallation of the product it is applied to
  5. run on Windows 7 SP 1 until Windows 10 (compile time)
  6. run offline (compile time)
  7. patch applications for Windows 7 SP 1 until Windows 10 (runtime)
  8. work with .NET applications (please also mention .NET only solutions, since that's my main part)
  9. cost less than 100 € (gratis / free / Open Source preferred)
  10. have lifetime license, no annual cost

Optional:

  • if it uses online "activation" (runtime), the activation server needs to run on a Ubuntu LAMP stack. Please mention if online activation is needed. Since I'm not a friend of all that online stuff, I'd need to take a closer look on how it works in detail (which will not prevent me from upvoting though)
  • the tool (compile time) should not bound to a specific machine (per developer license). If bound to a machine, there should be a clear way of changing the machine (e.g. when the build server is exchanged).
1

Here are some thoughts related to your requirements:

  • 2) Not require code in my application – This indicates that you need to get a wrapper to wrap your executable into another executable. This, in my mind, will make it easier for a cracker to unwrap and get the original executable. It might also trigger virus detection software, as a wrapper essentially starts another program from within a program
  • Having two versions of a program (combination of 1), 2) and 3) ), one demo and one production version, does mean that if someone gets their hand on the production version, they are free to redistribute this. Albeit legal, but it is still unprotected
  • 4) Surviving deinstallation – To me this indicates that you either in your wrapper, or in your license code module, need to build something like the computer id from Application Trial Maker. A pure wrapper would otherwise need to depend on something like installation/creation date or the download date (where you build version each night only valid for a given date range (but then they could download a new demo version ... ))

Based on this and some reading on the Application Trial Maker, I would suggest the following to get a suitable solution:

  • Use the Application Trial Maker, but wrap it so that the only change you need to your code is a simple inclusion in your main method. After doing this once, it should be easy to include in any project of yours
    • If you insist on building one demo version, and one production version then make two Release builds, where you use conditions to include or not include the license moduling
    • If building two version, you could opt for completing leaving out the license code bit
  • If including the license code you try making it slightly more automatic. One option could be to add a button to the license window triggering a HTTP request with the computer ID which could return the license code. This in combination with the option to buy your program (where they have to include the Computer Id), could reduce the hassle. You could/should however still have the option to link emails with a computer id to this system, but this can be done somewhat automagic as well

In other words, I do believe that the software you request, a wrapper software, doesn't exist, and you need to reconsider your requirements as to what really matters to you, and what you can make work for you to a proficient level of security. Based on your own information, it seems like tweaking the configuration of the Application Trial Maker and possibly building a little system around the license code handling would be a good solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.