Oct-05-2017, 12:13 PM
Depends on how effective you need it to be. eg, against casual browsing of source code, or a determined hacker/reverse engineer. eg, even the most secure DRM schemes for AAA games or DVD or blueray or your console will be broken sooner or later by determined hackers, especially if your software is very popular.
For casual people browsing thorough their folders and encountering your code, pyc is probably fine, even though you get reverse engineer software for that, most casual end-users won't really bother.
For less casual people trying to reverse engineer, you may find software like this effective (disclaimer, haven't tested it myself):
https://github.com/Falldog/pyconcrete
If your software is distributed with a python executable, then you can alter the bytecode coding and decoding inside the python binary, so that it's a bit harder to reverse engineer with regular tools.
I think that's how dropbox protects their client-side source code with a few layers, eg:
http://blog.codepainters.com/2012/09/17/...opbox-way/
You may also find this article interesting:
http://bits.citrusbyte.com/protecting-a-...-codebase/
Compiling through Cython is probably a good all-rounder.
Alternately, use your Python code as a prototype, and then port from that to another programming language (eg Go Lang), and then compile and distribute that.
For casual people browsing thorough their folders and encountering your code, pyc is probably fine, even though you get reverse engineer software for that, most casual end-users won't really bother.
For less casual people trying to reverse engineer, you may find software like this effective (disclaimer, haven't tested it myself):
https://github.com/Falldog/pyconcrete
If your software is distributed with a python executable, then you can alter the bytecode coding and decoding inside the python binary, so that it's a bit harder to reverse engineer with regular tools.
I think that's how dropbox protects their client-side source code with a few layers, eg:
http://blog.codepainters.com/2012/09/17/...opbox-way/
You may also find this article interesting:
http://bits.citrusbyte.com/protecting-a-...-codebase/
Compiling through Cython is probably a good all-rounder.
Alternately, use your Python code as a prototype, and then port from that to another programming language (eg Go Lang), and then compile and distribute that.