Discuss Software Protection in the Visual Basic Programming forum on Dev Shed. Software Protection Visual Basic Programming forum discussing VB specific programming information. Quickly prototype and build applications with this robust and simple language.
Posts: 106
Time spent in forums: 18 h 5 m 35 sec
Reputation Power: 0
Software Protection
I'm trying to find a solution to protect all the software developed in the company I work in.
Till now we've been working with hardlocks, but we are trying to cut on expences and wanting to develop our own software protection system.
I know that there some free tools, like for instance activelock, but we aren't interested in using third party tools either, since these tools are frequently open to attacks and we might have migration problems in the future.
I've been googling and I can't find any good techniques for developing this type of solution.
We've seen some ideas like for instance hardware dependet protection, but that is also a problem because it doesn't allow the user to change hardware without contacting us.
We have our own website, what makes possible the comunication with an online database, but we don't know what to do with this functionality. Check IP? It changes often,... Check Hardware? same problem as before, probably,...
Posts: 167
Time spent in forums: 2 Days 17 h 26 m 48 sec
Reputation Power: 43
For many years we have used a relatively simple technique that involved a unique number found on every computer. You could use anything (such as CPU serial number), but we chose to use the time/date that the operating system was installed. That date is a double precision number, and it doesn't change unless the operating system is reinstalled. We used a different seed for each different program, and calculated a one way encrypted key. You could use a standard encryption routine, but then it would be possible for a hacker to use brute force to crack it. Therefore we designed our own algorithm. The user would install the program, and on the first attempt to run it, it would supply a number. The user would contact us with that number, we would run it through the algorithm and supply him/her with the corresponding key. This process could be automated, but we did not have the volume to justify it, as the software was very industry specific.