Jun Koi wrote:
> sorry if this is a bit off-topic, but i think many people here must
> have the same concern, and have to cope with it somehow.
>
> i am developing a Windows project using Python. the final executable
> file .EXE and its libs will be generated with py2exe.
>
> my concern is that: even if the binary is without the source, the code
> is still Python bytecode.
> and as far as i am aware, it is pretty trivial to reverse the binary
> back to the Python code.

It won't necessarily be READABLE Python code.  It won't have local
variable names, and it won't have comments, but it's usually pretty
understandable.

> 1) how serious this problem is in your opinion? is it really true that
> it is impossible to protect the binaries from reversing?

Yes.  If this is an issue for you, then you should not be using an
interpreted language at all.  You need to use something that is
compiled, like C++.  Even compiled code can be reverse-engineered, but
it's much harder.

Note that this same issue exists with C#.  The binaries for a C# program
are in an Intermediate Language that is very similar to Python byte
codes, and which can be decompiled back to barely readable C# code.

What are you protecting here?  In many cases, Python code is a front-end
for a core library where the real IP lives.  There's no point in
protecting a user interface, for example.
 
> 3) if it is true that it is quite trivial to reverse the Python
> binaries, how are you currently protecting your binaries? perhaps with
> some obfuscated tools, making it much harder to reverse?

Remember that Python comes from the open source world, where obfuscation
is eschewed.  Most Python projects ship the source code.

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to