[Harry Robinson] I have heard Windows XP has a sort of protection so that it cannot be copied. I also heard of users having to phone to get the code. Does anyone know how this really works? Is it efficient? Also does anyone know of a good system to protect a TCL software? Thank one thank all (June 1 2004) ---- See [source protection]. It's a good idea to run a search [http://mini.net/tcl/2?protect*] before creating a new page. ---- Source protection is a much more apt term. "Piracy" is inaccurate, because legally, what's happening is "misappropriation", meaning using something wrongfully, against the wishes of the author as expressed in the license. This is different than stealing or pirating something. If I take your car, you no longer have the car to use. If I copy your software against your wishes, you may (or may not) lose out on some money, but of course still own the software. - [davidw] ---- That page really doesn't cover this topic. Preventing an executable from being copied and used elsewhere is not the same problem as protecting source from prying eyes. One might argue day and night about the right & wrong of each, the possibilities for success, etc. But clearly they are not the same question, though both might come up in the same discussion. To Mr. Robinson's question...my understanding is that XP obtains information on the hardware configuration and compares this information with the hardware present at boot time. This is, of course, an oversimplification, but that is the general concept. There is nothing to prevent a TCL app from doing something similiar, but to my knowlege it has not been implemented. I know the Scriptics tools used a licence-key server system to control licencing. Perhaps something like this would suit your needs. Others would know more about it then me, and hopefully will chime in here ;-). [Harry Robinson] ''Thanks so much for a very enlightening answer Mister ... (I'm sorry I did not see your name! :-)). I have been told the same thing about XP's protection: it does a sort of virtual digital prints. Very interesting! The Scriptics tool sounds like the solution I am looking for. Thanks! No offense to supporters of open-code but bear with us we'll be trying to make a living with software so we just can't give it out. ---- [Beware] - I've often pondered the same thing. The way I see it, you need to choose some unique code on the computer (Hard drive serial number, Windows key, or some other piece of information). What many/most small apps do is to encrypt that code into some other code and present this to the user on registering. The customer then pays, and is sent a second code to input and 'unlock' the program. The second code would be the first code, run through some algorithm. So the code the customer is given can be stored with the app (it doesn't need encrypting or anything), and at run time, the app can get the original unique code from the computer, convert it into the second code (the one the customer sees), then convert that using the same algorithm that you used to give them their key. Compare the keys, and if they're the same, then run 'unlocked'. The main problem is a resourceful hacker (the people that make keygens) might be able to figure out your algorithms, since they're in the applications' code... [AMG]: Simpler still is to modify the program to bypass the check entirely. This can be as easy as inverting the sense of a conditional branch, or overwrite the first instruction of the test with an unconditional jump to the first instruction of the success handler.