SOLVED - Secure the Software [modified]
-
Hello Friends, I have developed a desktop software with VB.NET. I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely. Their may be customers who may need the product to be run on N number of machines independently (not on Network). In that case also, the customerId may be same but each machine must have independent copy of the product. How can I achieve such security measurements for newly developed desktop software? Any helpline, guidance is highly appreciated.
Thanks & Regards,
modified on Friday, September 3, 2010 9:16 AM
-
Hello Friends, I have developed a desktop software with VB.NET. I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely. Their may be customers who may need the product to be run on N number of machines independently (not on Network). In that case also, the customerId may be same but each machine must have independent copy of the product. How can I achieve such security measurements for newly developed desktop software? Any helpline, guidance is highly appreciated.
Thanks & Regards,
modified on Friday, September 3, 2010 9:16 AM
I can think of two ways of doing it. 1. Have a product key and validate it on your server. You can keep the IP and the key to be sure your software has been installed. This will require the users to have internet connection at least while installation. 2. I am not sure how this can be done, but here's the thought. If you can get the details of the computer where your application is installed in the setup some how while installation, next time when the same setup is used, it can prompt that the S/W has already been installed on another computer.
-
I can think of two ways of doing it. 1. Have a product key and validate it on your server. You can keep the IP and the key to be sure your software has been installed. This will require the users to have internet connection at least while installation. 2. I am not sure how this can be done, but here's the thought. If you can get the details of the computer where your application is installed in the setup some how while installation, next time when the same setup is used, it can prompt that the S/W has already been installed on another computer.
d@nish wrote:
1. Have a product key and validate it on your server. You can keep the IP and the key to be sure your software has been installed. This will require the users to have internet connection at least while installation.
Can you tell how does this product key option works. I feel the logic & flow should be such as : 1 User is installing 2 While installation it talks to a other app lying on the Server. 3 The server app, keeps the IP address, checks in another DB lying at server. 4 If the IP address is new, provides a Product key and stores the same against the IP on the DB located at Server. 5 If IP address is not new, displays appropriate message and doesn't allow to install the app. Can you confirm with the above logic. And also if possible provide any code for me as help to proceed. REG 2nd Point - what kind of computer details can be retrieved and checked out. Any clue.
Thanks & Regards,
-
d@nish wrote:
1. Have a product key and validate it on your server. You can keep the IP and the key to be sure your software has been installed. This will require the users to have internet connection at least while installation.
Can you tell how does this product key option works. I feel the logic & flow should be such as : 1 User is installing 2 While installation it talks to a other app lying on the Server. 3 The server app, keeps the IP address, checks in another DB lying at server. 4 If the IP address is new, provides a Product key and stores the same against the IP on the DB located at Server. 5 If IP address is not new, displays appropriate message and doesn't allow to install the app. Can you confirm with the above logic. And also if possible provide any code for me as help to proceed. REG 2nd Point - what kind of computer details can be retrieved and checked out. Any clue.
Thanks & Regards,
For the first approach, you can use following logic: 1. Provide a key along with the setup. When the user enters that, pick up the IP address* and send them both to server. 2. Server should then check in the DB that the sent product key is already registered with some other IP*. 3. If yes, and IP* is same, let the user install and if IP* is different, deny installation. *Many people have dynamic IPs and hence this logic looks flawed. You can get the Mac address since it is a unique number for each computer. Although, if the end user has tried Mac spoofing ie changing Mac address, there might be some problems. Still this IMHO will be a bit more secure way. For approach two, Mac address can be a number you can track. Since I have never implemented anything like this I cannot provide code sample right away. Although googling something like "product registration" might give useful results.
-
Hello Friends, I have developed a desktop software with VB.NET. I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely. Their may be customers who may need the product to be run on N number of machines independently (not on Network). In that case also, the customerId may be same but each machine must have independent copy of the product. How can I achieve such security measurements for newly developed desktop software? Any helpline, guidance is highly appreciated.
Thanks & Regards,
modified on Friday, September 3, 2010 9:16 AM
All Time Programming wrote:
I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely.
Some things to consider;
- Can I still reinstall Windows, or would I have to purchase a new version?
- What happens if I buy a new PC? Can I keep the software, or do I have to purchase a new version?
- Reading what you wrote, it implies I am allowed to install it on a single server and use some remote-desktop software to share it with some friends?
- For IP: will the software continue to work if I switch my internet-provider?
- Are you loosing money on those illegal copies, and how much of your precious time is it worth?
I are Troll :suss:
-
Hello Friends, I have developed a desktop software with VB.NET. I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely. Their may be customers who may need the product to be run on N number of machines independently (not on Network). In that case also, the customerId may be same but each machine must have independent copy of the product. How can I achieve such security measurements for newly developed desktop software? Any helpline, guidance is highly appreciated.
Thanks & Regards,
modified on Friday, September 3, 2010 9:16 AM
I have never done this as I tend to write web applications, but, I have heard of people doing the following with a good success rate. When the user installs the application the must activate it, much like Windows now does. On activation, the software gathers certain information about the computer, some examples are processor id, memory id, motherboard manufacturer, ect. You grab this info and smash it together into say a string and that is not the computers unique ID. You also send the user a key that you generate. When the program trys to activate you check first that the generated key hasn't been used, if it has, check that the unique ID matches. There is one flaw to this type of validation. If the user upgrades that computer, they will get a new processor id, or memory id, ect (depending on what they upgrade of course). There are solutions to this issue as well but I'll leave that all up to you. Hope that helps, if you need some more help on this I have thought about this fairly heavily and maybe be able to provide more suggestions.
The best way to accelerate a Macintosh is at 9.8m/sec² - Marcus Dolengo
-
Hello Friends, I have developed a desktop software with VB.NET. I want to create some security measurements through which, after purchasing one copy, customer cannot copy to several computers or distribute freely. Their may be customers who may need the product to be run on N number of machines independently (not on Network). In that case also, the customerId may be same but each machine must have independent copy of the product. How can I achieve such security measurements for newly developed desktop software? Any helpline, guidance is highly appreciated.
Thanks & Regards,
modified on Friday, September 3, 2010 9:16 AM
Thanks to All of you for these good suggestions and hints. At present, I have managed to work out with unique Serial Key with the product managing algorithm of my own. Customer downloads from net or anywhere without this he want be able to install only & without installation, it wont run only. Lets see ahead what is required and how. Once again Thanks to all. If I need any further assistance in this matter, will definetely ask you guys again. Your ideas heled me bring up something differnet but safe. Thanks
Thanks & Regards,