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
-~----------~----~----~----~------~----~------~--~---

Reply via email to