protecting shareware in Visual C++

I am thinking of writing a small shareware program. It will basically be a program to allow users to edit which program start-up with the computer. However I will try and add a few extra features to make it worthwhile with all the similar programs around.
I will have a shareware version & a full version. The full version can be downloaded once the customer has registered. But with the shareware version how would I either:
a) restrict the trial to 10-days or something- how do I monitor that the clock isn't set back etc.
b)or restrict the number of times the program can be used before it must be registered.


Comments

  • : I will have a shareware version & a full version. The full version can be downloaded once the customer has registered.
    :

    i've done some [email protected][red]*[/red] during my time at my computer. strictly educational! ;) honestly, there isn't much you can do. a [email protected][red]*[/red] can disassemble, change a few hex codes, and bypass any restrictions you have. it's fairly simple. or they could use a debugger to catch any API calls your program uses, with this method a [email protected][red]*[/red] can find the serial for a program with out having to register it. you may want to use an packer/encryptor. but, still... your program is not completely safe. there are numerous programs out there that will unpack/decrypt your program, no matter what packer/encryptor you're using. now, assuming that the user is completely legitimate:

    : a) restrict the trial to 10-days or something- how do I monitor that the clock isn't set back etc.

    1. the first time your program runs get the date.
    2. write the date to the registry.
    3. then every time your program runs, thereafter, get the date.
    4. compare it with the date that was written in the registry the previous run.
    5. if the current date is earlier than the date in the registry, do what ever you'd like. i.e. warn user, close program.

    : b)or restrict the number of times the program can be used before it must be registered.

    1. the first time your program runs write a value into the registry. i.e. Uses 1.
    2. then every time your program runs, thereafter, get the value from the registry and increment it by one. i.e. Uses 2.
    3. compare that value with "Uses 10" or whatever you like.
    4. if not equal, write the incremented value to registry.
    or. if equal, do what ever you'd like.

    [red]*[/red]: word is banned

    [size=2][white]/*[/white][/size][size=3][blue][[/blue][/size][size=2][red]WayTooHigh[/red][/size][size=3][blue]][/blue][/size][size=2][white]*/[/white][/size]


  • I didn't realise that it's a simple reg key that shareware uses.

    :i've done some [email protected]* during my time at my computer. strictly educational! ;) honestly, there isn't much you can do. a [email protected]* can disassemble, change a few hex codes, and bypass any restrictions you have. it's fairly simple. or they could use a debugger to catch any API calls your program uses, with this method a [email protected]* can find the serial for a program with out having to register it.

    I can think up elaborate regsitration key schemes invloving making unlock codes from hardware id's, GUIDs etc. in the users machine. But I want to know- is it worth it? If *[email protected]*'s can see inside the inner workings of my programs that easily should I even bother or should I just go for the basic unlock key derived from the user's name or something similar.

    Would my program be safer if I had two versions- a shareware one that would expire after 10 days or 10 uses or something and a completely different full version. The full version would be downloadable once the user has payed. The full version would be compiled from different source code as the shareware version. I realise this wouldn't protect me from *[email protected]* sites and it would require some method of authentication on the server-side but would it protect me from *[email protected]*?

    And for f***'s sake programmer's heaven- remove your restrictions on the word '*[email protected]*'- it's something we all have to deal with as programmers.


  • Why don't you stip down the freeware version so there are less features, but also not bother with the timebombs, reg keys, nags, etc.

    It is possible to benefit both the developer and the user without comprimising quality.

    If you want an incentive for the user to purchase your full version, you should make it clear that there is a *full* version. For example, call your freeware version "Start-Up Manager 1.0 LITE" or something, and then refer to the full version in your documentary occassionally , etc.

    [italic][blue]-- Spida.[/blue][/italic]


  • :
    : Why don't you strip down the freeware version so there are less features, but also not bother with the timebombs, reg keys, nags, etc.

    Hadn't thought of that- good idea. But I would have thought that that approach would only generate sales for the full version in large, complex programs such as mail clients. eg Eudora,Eudroa lite.
    Anyone had any experience selling software under this model?




Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories