io

intensio-obfuscator

Obfuscate a python code 2.x and 3.x

Showing:

Popularity

Downloads/wk

0

GitHub Stars

468

Maintenance

Last Commit

1yr ago

Contributors

3

Package

Dependencies

1

License

MIT

Categories

Readme

Intensio-Obfuscator

Project not maintained anymore

Thanks to all contributors

PyPI Version

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 all chars to their hexadecimal value
    • Delete all comments, all spaces lines
    • Padding random snippets code/functions/classes with an always differents values

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
$ python3 -m pip install intensio-obfuscator
$ intensio_obfuscator --help

Features

FeaturesDescriptionsPurpose of obfuscationCompatibility with all types of python codes/syntaxes
Delete commentsDelete all comments (this feature is executed by default)Delete potential behavioral informationshigh python files 2 & 3
Delete line spacesDelete all spaces line (this feature is executed by default)Reduce the code visibility in clearhigh python files 2 & 3
Correction padding empty classes/functionsAdd 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 errorshigh python files 2 & 3
Replace string to string mixedReplace all names of variables/classes/functions to random strings with length definedReduce the code visibility in clear - Delay the deduction of the behavior of variables/classes/functionslow - high (depends of number of names that must exclude or not) python files 2 & 3
Exclude wordsfile to exclude word (check documentation for the format) only for 'replace file name' obfuscation featureInformation not requiredInformation not required
Padding scriptAdd padding of random scripts after each lineReduce the code visibility in clear - add dead snippets code/classes/functions to blur and delay behavior analysis of programhigh python file 2 & 3
Replace files nameReplace all files name to random strings with length definedReduce the code visibility in clear - Reduce the deduction of functionnalities of fileslow python files 2 & 3
Exclude file namesfile to exclude file names (check documentation for the format) only for 'replace file name' obfuscation featureInformation not requiredInformation not required
Replace string to hexReplace all chars to their hexadecimal valueReduce the code visibility in clear / avoid to be detected by the \'grep\' commands per examplemedium python files 2 only
Correction delete pyc fileDelete all pyc file in output directory (this feature is executed by default)Delete files already compiled without having been obfuscated beforehigh python files 2 & 3
Mixer length lowerDefine random strings length of 32 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specifiedThe longer the length is used, the more difficult the visibility of the codeInformation not required
Mixer length mediumDefine random strings length of 64 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specifiedThe longer the length is used, the more difficult the visibility of the codeInformation not required
Mixer length highDefine random strings length of 128 chars when -rts, --replacetostr or -ps, --paddingscripts or -rfn, --replacefilesname or -rth, --replacetohex parameters are specifiedThe longer the length is used, the more difficult the visibility of the codeInformation 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

ParametersDescriptions
-h, --helpshow this help message and exit
-i, --inputsource directory - indicate a directory that contain your file
-o, --outputoutput directory that will be obfuscated - indicate a empty directory that will contain your file
-mlen, --mixerlengthdefine 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, --indentindicate the indentation of your python source code, possible values: [2|4|8]
-rts, --replacetostrenable replace string to string mixed obfuscation feature
--excludewordsfile to exclude specific words (check documentation for the format) only for -rts, --replacetostr obfuscation feature
-ps, --paddingscriptenable padding script obfuscation feature
-rfn, --replacefilenameenable replace file name obfuscation feature
--excludefilesfile to exclude file name (check documentation for the format) only for -rfn, --replacefilename obfuscation feature
-rth, --replacetohexenable replace string to hex obfuscation (python files 2 only)
--versioncheck current version
-v, --verboseimprove verbosity

Obfuscation examples

Todo

  • Version 1.x.x-x:
    • Code optimization
    • Fix issues
    • Improved features already present
    • Add other functionalities

License

  • MIT

Contact

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial