All Projects → ga0 → Pyprotect

ga0 / Pyprotect

Licence: bsd-3-clause
A lightweight python code protector, makes your python project harder to reverse engineer

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pyprotect

obfuscator
Obfuscate PHP source files with basic XOR encryption in userland code at runtime.
Stars: ✭ 20 (-93.69%)
Mutual labels:  obfuscation
netlicensing.io
Labs64 NetLicensing - Innovative License Management Solution
Stars: ✭ 13 (-95.9%)
Mutual labels:  licensing
email-concealer-cli
CLI tool for concealing e-mails in a file by replacing their domain
Stars: ✭ 30 (-90.54%)
Mutual labels:  obfuscation
license-to-fail
A license to fail your build (exits when a package in node_modules has a disallowed license)
Stars: ✭ 70 (-77.92%)
Mutual labels:  licensing
Networkteam.Neos.MailObfuscator
Email address obfuscation for Neos CMS
Stars: ✭ 13 (-95.9%)
Mutual labels:  obfuscation
AndrODet
AndrODet: An Adaptive Android Obfuscation Detector
Stars: ✭ 25 (-92.11%)
Mutual labels:  obfuscation
data obfuscation
Data Obfuscation for C/C++ Code Based on Residue Number Coding (RNC)
Stars: ✭ 15 (-95.27%)
Mutual labels:  obfuscation
Nt wrapper
A wrapper library around native windows sytem APIs
Stars: ✭ 287 (-9.46%)
Mutual labels:  obfuscation
core
🔥 Antares Core Implemenation. Most important project layer, this is the heart for your app. ACL, notifiter, console, geoip, areas, utils and many more...
Stars: ✭ 24 (-92.43%)
Mutual labels:  licensing
tools-python
A Python library to parse, validate and create SPDX documents.
Stars: ✭ 65 (-79.5%)
Mutual labels:  licensing
ConfuserEx-Mod-By-Bed
Beds Protector | Best free obfuscation out right now
Stars: ✭ 297 (-6.31%)
Mutual labels:  obfuscation
UniObfuscator
Java obfuscator that hides code in comment tags and Unicode garbage by making use of Java's Unicode escapes.
Stars: ✭ 40 (-87.38%)
Mutual labels:  obfuscation
sus
A now actually pretty good amogus themed javascript obfuscator lol
Stars: ✭ 23 (-92.74%)
Mutual labels:  obfuscation
mumbojumbo
Obfuscates golang strings
Stars: ✭ 29 (-90.85%)
Mutual labels:  obfuscation
licensor
write licenses to stdout
Stars: ✭ 138 (-56.47%)
Mutual labels:  licensing
jit obfuscation poc
Using GNU lightning to generate xor deobfuscation at runtime
Stars: ✭ 23 (-92.74%)
Mutual labels:  obfuscation
awesome-open-source-licensing
Cool links, tools & papers related to Open Source Licensing
Stars: ✭ 17 (-94.64%)
Mutual labels:  licensing
Utls
Fork of the Go standard TLS library, providing low-level access to the ClientHello for mimicry purposes.
Stars: ✭ 306 (-3.47%)
Mutual labels:  obfuscation
Obfuscate
Guaranteed compile-time string literal obfuscation header-only library for C++14
Stars: ✭ 260 (-17.98%)
Mutual labels:  obfuscation
inceptor
Template-Driven AV/EDR Evasion Framework
Stars: ✭ 730 (+130.28%)
Mutual labels:  obfuscation

pyprotect

pyprotect is a lightweight python code protector, makes your python project harder to reverse engineer.

Features

  • Cross platform
  • No need to install any extra dependents
  • Very easy to use

Only python3.x is supported by current version

How it works?

how-it-works

Build pyprotect

  1. Create a directory "deps" in pyprotect root directory.
  2. Download pybind11 project into the newly created deps directory.
  3. Unzip pybind11 zip file, and change the extracted directory's name from something like "pybind11-x.x.x" to "pybind11"
  • Run these commands in pyprotect root directory:
mkdir build
cd build && cmake .. && make

And you can find libpyprotect.cpython-PYVERSION-PLATFORM.so in the objs directory.

Encrypt your python project

Command:

python encrypt.py -s SCRIPTS_DIR -e ENTRY_POINT_LIST -o OUTPUT_DIR [--exclude EXCLUDED_SCRIPT_LIST]
  • SCRIPTS_DIR is your python project root directory.
  • ENTRY_POINT_LIST is a comma separated list of file function pair which is directly ran as the entry point of your programme. For example "app.py:main,test_app.py:run_test".
  • OUTPUT_DIR is the destination directory to store the encrypted python scripts.
  • EXCLUDED_SCRIPT_LIST is a comma separated list of python scripts which you don't wan to encrypt.

You need to put libpyprotect.cpython-PYVERSION-PLATFORM.so into the OUTPUT_DIR as part of your programme.

Configuration [IMPORTANT]

For security reason you should change the AES key and IV, which is used to encrypt/decrypt the python scripts, to a stronger value. And you may want to change the file extension of encrypted python scripts (which is ".pye" by default).

You can find these macros or variables in config.h and encrypt.py:

  • PYPROTECT_KEY
  • PYPROTECT_IV
  • PYPROTECT_EXT_NAME

You need to change the two files both. Please change the PYPROTECT_KEY and PYPROTECT_IV to a safer value.

Roadmap

  • [x] Support python3 scripts
  • [ ] Support python2.7 scripts
  • [ ] Anti debugging
  • [ ] Software license control

License

pyprotect is provided under a BSD-style license that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].