Securely distributing python source code as an application?

sturlamolden sturlamolden at yahoo.no
Fri Dec 7 22:35:48 EST 2007


On 7 Des, 23:37, xkenneth <xkenn... at gmail.com> wrote:

>      I'll shortly be distributing a number of python applications that
> use proprietary. The software is part of a much larger system and it
> will need to be distributed securely. How can i achieve this?

If you provide the application as a web service there is no need to
distribute anything all. That is what Google does.

You don't have to distribute your Python source code. You can
distribute Python bytecode (.pyc files).

Python bytecode can be decompiled, but the source can not be
retrieved. The same is true for Java bytecode, .NET assemblies, even
native executables and library files. Reverse engineering not just an
issue for programs written in Python.

You can oobfuscate the bytecode further. You can build your own Python
runtime and scramble the opcodes. You can device a system that
encrypts and decrypts the bytecode on the fly. But there is no
foolproof way of doing this. Anything you do can be cracked by an
expert. But you can make it very difficult to decompile the bytecode.

You can watermark the bytecode sent to each customer. It will not
prevent reverse engineering, but you will know who is sharing it on
BitTorrent.

You can use a license manager like Macrovision's flexlm. If you build
your own Python runtime from source and scramble the opcodes, you
would have a rather safe licence manager if it's linked with the
flexlm client library.

There is no universal answer to this question. It depends on your
assessment of the risks and the measurements you are willing and
capable of taking. How malicious do you expect your customers to be?
How technologically competent are they? How paranoid are you? Etc.












More information about the Python-list mailing list