How to protect the program from copying?
Alarus
Posts: 48
A propeller EEPROM located separately from the main crystal. Its easy to read.
How to protect the program from copying, or make it not working on another crystal?
How to protect the program from copying, or make it not working on another crystal?
Comments
You could make the program obscure by adding a ROM on the board with a key, and write the program so that it must first decrypt itself. This would prevent people from copying the EEPROM directly to a different board, but it wouldn't stop a dedicated thief.
One thing to note is that your code is relatively safe from reverse engineering from the EEPROM binary due simply to the effort needed.
That did'nt prevent Garry Kildall, Bill Gates and others building significant business on those platforms and making some decent pocket money.
There was no copy protection on later 16, 32 and 64 bit computers. These empires grew bigger.
Edit: Not to mention Apple.
I conclude that copy protection is not required.
I think you meant didn't..
-Tor
- I use the Ramtron FM31T378 in place of classic eeprom.
- The built-in non volatile otp serial number identifies my product.
- The built-in battery-backed counters are used to store the encryption key combined with the s/n.
- The counter inputs are used for protection: connected to the enclosure switch and a photo-element thus if the enclosure is opened or the pcb receive light the counters counts and the key is changed.
- In the fram the only unencrypted part is the decryption code and a basic I2C driver. Once the the prog is transferred to the hub and starts, the key is read and 6 cogs are launched to read-decrypt-write the hub, each-one a 4K window, then the real thing starts.
In this way the system upgrade or additional options must be purchased for each s/n separately. Perhaps is not the best way but is the one we came to. Till now the costumer is happy. Of course I would have used a pic or some other micocontroller that guarantee the code protection but the propeller multicore architecture with its capabilities was what was needed. Indirectly I must thanks also Kuroneko because his puzzles opened my mind in many directions
Also when those batteries die and you are no longer in business your customer has a brick.
The RTC was mandatory and with the eeprom you need to ad it. With the last fram that have a built-in crystal, INT and FOUT signals also the protection circuit is made from 3 inexpensive parts.
The battery is not a problem, because the product is supposed to be continuously powered but still is dimensioned to survive more than 6 month in absence of power. The product, in this case is supposed to be installed and maintained by the provider.
Or there are 1-wire devices that are just a unique serial number.
Someone would have to reverse engineer your code to find where to check for the serial number to copy it. Of course do NOT put the serial number directly into your program encode it in some way.
Bean