Click here to Skip to main content
15,891,033 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
We have a software that is installed in about 50 different customers. We send software updates monthly to our active customers. Nowadays update process is manual, they download a zip file and uncompress it in a folder. That's OK for us for now. The problem is that if an active customer sends this zip file to an inactive customer, the update works perfectly. I would like to validate, without using Internet (not every customer has an Internet connection), if the customer can install the update. I have thought of a database of active customer inside the update but I don't like this option.
Thanks in advance.
Posted

Rule one: There is no guarantee that your software cannot be pirated. Look at the people who can afford to put major protection into their software, and how little affect it has on dedicated pirates.

Whatever you do, you have to be sure that there is sufficient of a problem to make it worth the investment of time and effort (and it will take a good deal of both) as well as the probably irritation to paying customers.

If you cannot get the software to check with you that it can be installed, then your only other real option is to fix the version of the software to a specific machine or machines, and require a new licence code to be generated when the hardware is changed. This isn't too difficult to do, but you will have an administrative overhead in maintaining the machine list, and making absolutely sure that you only ever send the right zip file to the right customer.

Check first: just how big a problem is this? Is it really going to be worth the investment of time and energy you will have to expend to implement? What are the risks of pissing off existing customers? Will any of them desert for your competition?

And remember: there is no perfect solution! They are all breakable in some way...
 
Share this answer
 
Comments
fjdiewornncalwe 10-Mar-11 14:51pm    
+5. I'm in total agreement with this.
Yusuf 10-Mar-11 15:33pm    
Good points
thatraja 10-Mar-11 20:51pm    
Fine answer OG. 5!
With what others said I can think of only one way of dealing with customers without internet, they phone in for a code.

Design the code to be self changeing, date based for example, and those with web access will automatically self verify, otherwise they ring you up.
 
Share this answer
 
Apart from what OriginalGriff said, you can maximum try to set license to it and make it little difficult to use illegal copy.

There are different ways to achieve this:
1) encrypted license files that contains the expiry dates etc.
2) encrypted license keys held in the registry
3) challenge/response mechanism which require an internet connection
4) probably others.......

Try: License Key Generation[^] or: How can I create a Product Key for my C# App[^] or: c# Licensing[^]

Also,
Cryptography 101 for the .NET Framework[^]

Hope this helps.
 
Share this answer
 
there is one perfect solution, it's called the OPEN SOURCE ;}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900