Obfuscate a python code 2.x and 3.x
Project description
Intensio-Obfuscator
What is this ?
- Intensio-Obfsucator tool takes a python source code and transform it into an obfuscated python code
- Replace all names of
variables/classes/functions/files-name
to random strings with length defined then allchars
to their hexadecimal value - Delete all
comments
, allspaces lines
- Padding random
snippets code/functions/classes
with an always differents values
- Replace all names of
What purpose ?
- Provides a high level obfuscation layer to prevent or delay the reading and understanding of your python program
Level of obfuscation
- Weak obfuscation if used alone, can be used with other types of obfuscation
Requirements
- Python >= 3.5
- requirements.txt
Files supported
- Files written in python 2.x and 3.x
Installation
- From source
$ git clone https://github.com/Hnfull/Intensio-Obfuscator.git
$ python3 -m pip install -r Intensio-Obfuscator/requirements.txt
$ cd Intensio-Obfuscator/src/intensio_obfuscator
$ python3 intensio_obfuscator.py --help
- From python package
$ pip install intensio-obfuscator
$ ./intensio_obfuscator --help
Features
Features | Descriptions | Purpose of obfuscation | Compatibility with all types of python codes/syntaxes |
---|---|---|---|
Delete comments | Delete all comments (this feature is executed by default) | Delete potential behavioral informations | high python files 2 & 3 |
Delete line spaces | Delete all spaces line (this feature is executed by default) | Reduce the code visibility in clear | high python files 2 & 3 |
Correction padding empty classes/functions | Add padding to empty classes and functions, if the class or function contains comments only, the default feature Delete comments can potentially let a class or function empty, this will avoid to generate an error (this feature is executed by default) |
None, only to avoid to generate errors | high python files 2 & 3 |
Replace string to string mixed | Replace all names of variables/classes/functions to random strings with length defined | Reduce the code visibility in clear - Delay the deduction of the behavior of variables/classes/functions | low - high (depends of number of names that must exclude or not) python files 2 & 3 |
Exclude words | file to exclude word (check documentation for the format) only for 'replace file name' obfuscation feature | Information not required | Information not required |
Padding script | Add padding of random scripts after each line | Reduce the code visibility in clear - add dead snippets code/classes/functions to blur and delay behavior analysis of program | high python file 2 & 3 |
Replace files name | Replace all files name to random strings with length defined | Reduce the code visibility in clear - Reduce the deduction of functionnalities of files | low python files 2 & 3 |
Exclude file names | file to exclude file names (check documentation for the format) only for 'replace file name' obfuscation feature | Information not required | Information not required |
Replace string to hex | Replace all chars to their hexadecimal value | Reduce the code visibility in clear / avoid to be detected by the 'grep' commands per example | medium python files 2 only |
Correction delete pyc file | Delete all pyc file in output directory (this feature is executed by default) | Delete files already compiled without having been obfuscated before | high python files 2 & 3 |
Mixer length lower | Define random strings length of 32 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specified |
The longer the length is used, the more difficult the visibility of the code | Information not required |
Mixer length medium | Define random strings length of 64 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specified |
The longer the length is used, the more difficult the visibility of the code | Information not required |
Mixer length high | Define random strings length of 128 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specified |
The longer the length is used, the more difficult the visibility of the code | Information not required |
- Features can be executed separatly:
replace string to string mixed
->-rts, --replacetostr
padding script
->-ps, --paddingscript
replace file name
->-rfn, --replacefilename
replace string to hex
->-rth, --replacetohex
Usages
- Read these Documentations before to use Intensio-Obfuscator tool !
- Certain types of pattern are not supported
Parameters | Descriptions |
---|---|
-h, --help | show this help message and exit |
-i, --input | source directory - indicate a directory that contain your file |
-o, --output | output directory that will be obfuscated - indicate a empty directory that will contain your file |
-mlen, --mixerlength | define length of random strings generated [lower:32 |medium:64 |high:128 ] chars when --replacetostr or --paddingscripts or -rfn, --replacefilesname or --replacetohex features are specified, possible values: [lower |medium |high ] |
-ind, --indent | indicate the indentation of your python source code, possible values: [2 |4 |8 ] |
-rts, --replacetostr | enable replace string to string mixed obfuscation feature |
--excludewords | file to exclude specific words (check documentation for the format) only for -rts, --replacetostr obfuscation feature |
-ps, --paddingscript | enable padding script obfuscation feature |
-rfn, --replacefilename | enable replace file name obfuscation feature |
--excludefiles | file to exclude file name (check documentation for the format) only for -rfn, --replacefilename obfuscation feature |
-rth, --replacetohex | enable replace string to hex obfuscation (python files 2 only) |
-v, --verbose | improve verbosity |
Obfuscation examples
Todo
- Version 1.x.x-x:
- Code optimization
- Fix issues
- Improved features already present
- Add other functionalities
License
- MIT
Contact
- Hnfull gitland@protonmail.com
Disclamer
- Intensio-Obfuscator is for education/research purposes only. The author takes NO responsibility ay for how you choose to use any of the tools provided
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
intensio_obfuscator-1.0.10.2.tar.gz
(405.9 kB
view hashes)
Built Distribution
Close
Hashes for intensio_obfuscator-1.0.10.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5470595e82d69805f285d092e7e00eb3d0b0100c67336eba9c8becc0ae58324 |
|
MD5 | cea0398762f742538085a40375a990f8 |
|
BLAKE2b-256 | 435ac3a30de150d85f1d24742304cfef0ab4aeb08d66a383fbef1044aedf366b |
Close
Hashes for intensio_obfuscator-1.0.10.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b56105acb1ab36c32d12bfc182140145377f2d2ffaa178cda919297a2618e3e8 |
|
MD5 | 22882442b9c8a161d155e210ef67b644 |
|
BLAKE2b-256 | 0b2ea9bd1826551e8c76b4c7382e4e8aa207a486e2539176534cd3ed77af421a |