Skip to content Skip to sidebar Skip to footer

Protecting Python Source Code

I want to protect python script, since people most likely known to be jerks and steal someones work i would really like to protect it. Its sad how easily it can be stolen... copy p

Solution 1:

Encrypt the python code and decrypt them when importing.

Step 1 - Implement your own module loader

You can use the importlib to implement your own python module loader. That is to say, you can change the import process to decrypt your encrypted python code.

But you may say the module loader is also written in python, the crypto key can be easily seen in the python script.

So let's go to next step.

Step 2 - Rewrite your module loader in C/C++

Thanks to cython, python module can be written in C/C++. The decryption code will be compiled to binary code. That's very hard to reverse engineer compared to py or pyc files.

Step 3 - Write a script to encrypt your source tree

This is the simplest part. :)

If you are interested in the topic, this project will help you - pyprotect.

Solution 2:

There are two questions here: code protection and property. So licensing would be the second aspect, but it seems, from your question, licensing isn't your problem per-se. Some modules exist to protect your source code, like sourcedefender. It works pretty much like described by @lambda11 , though I have no idea if they use C/C++ to do their magic. The fact that they "do some magic" makes me nervous personally, code protection is one thing, but if it's a true concern, I guess the question is how hard it is to get to your code in the end. That's another story altogether. But if you look for short answers, well, people have done it previously.

Solution 3:

I had the same problem for long time. I can say the best and short solution is by two steps:

1 - encrypting your source code using sourcedefender third party here:

  • pip install sourcedefender

  • important: you must import sourcedefender as first line in main code file

  • extremely important: you must import all pip installed packages in main

    code file exactly as it's used in the project encrypted files ex: from x import y

  • encrypt any file you want using command: sourcedefender encrypt file.py

  • then : pyinstaller --onefile --add-binary encrypted code file;. app.py'

  • Note: If you have this to start your GUI:

    if name == 'main': main()

    Try this instead:

    #if name == 'main': main()

2- using software licensing APIs like: cryptolens

Post a Comment for "Protecting Python Source Code"