Every interpreted language has its source viewable by nature -- the interpreter needs to be able to run it. Bytecode can easily be turned back into source with a decompiler on any language.
The 'trick' some use is to obfuscate it - basically do a quick pass before compiling to make the code unintelligible. It's still wholly readable, but you have variable names like "Ya1209ASD5kjIad" which can make no sense. Some people use 'encryption' as a trick - which is quite stupid -- the interpreter needs to decrypt the code , so it's a reversible encryption which can easily be undone. A firm I once worked with *mistakingly* bought several dozen units of an embedded system made by a foreign firm that was unable to support or alter their code - contractors built it for them, and they basically killed relations with them. They insisted that the contractors encrypt the code and obfuscate it so people couldn't copy it. It took us 20 minutes to track down the right library to decrypt the code and export the source. Then we spent 10hours de-obfuscating it with simple find&replace. The moral of the story is: when you're dealing with interpreted languages, the ONLY thing you will be able to do is to make it harder for people to decompile. This is true of python, perl, ruby, flash, etc etc If you want to protect code on embedded systems, make it harder to get at the code through hardware limitations... then cover it with copyright, patent and contract law in the countries where you think it will be accessed and litigate. Cellphones, Iphones, Every gaming console, etc has been hacked. If people want to get at your code, they will. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
