Coder Social home page Coder Social logo

davidteather / python-obfuscator Goto Github PK

View Code? Open in Web Editor NEW
144.0 3.0 33.0 49 KB

I got tired of writing good code so I made good code to make bad code

License: MIT License

Python 100.00%
python python-obfuscator obfuscator obfuscators hacktoberfest

python-obfuscator's Introduction

Python-Obfuscator

One night I got bored of writing good code, so I made good code to make bad code.

GitHub release (latest by date) Downloads Linkedin

DONT USE IN PRODUCTION

I just made this because it was interesting to me. I do plan on making this more official in the future, but currently don't have the time!

Consider sponsoring me here

Installing

pip install python-obfuscator

Quickstart

Print out obfuscated code

pyobfuscate -i your_file.py

Apply changes to the input file

pyobfuscate -i your_file.py -r True

More Detailed Documentation

You can use this as a module if you want

import python_obfuscator
obfuscator = python_obfuscator.obfuscator()

code_to_obfuscate = "print('hello world')"

You can also exclude certain techniques applied for obfuscation

import python_obfuscator
from python_obfuscator.techniques import add_random_variables
obfuscator = python_obfuscator.obfuscator()

code_to_obfuscate = "print('hello world')"
obfuscated_code = obfuscator.obfuscate(code_to_obfuscate, remove_techniques=[add_random_variables])

Find a list of all techniques here

Example Obfuscated Code

Input

y = input("what's your favorite number")

user_value = int(y)
print("{} that's a great number!".format(user_value))

With pyobfuscate -i file.py

With --one-liner True

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

python-obfuscator's People

Contributors

cr0hn avatar davidteather avatar gjp4tw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

python-obfuscator's Issues

Package obfuscation

Is there a will to implement the obfuscation at package level ? I noticed that obfuscating file by file in a package using pyobfuscate command doesn't change variable names of imported stuff, which makes it quite easy to recuperate the original package code.

Obfuscation changes __name__ variable name

I am trying to obfuscate a very simple file like the following:

from file1 import f1
from file2 import f2

if __name__ == "__main__":
    f1()
    f2()
    print("f3")

The __name__ variable name is converted to a garbage string and it avoids the program to run. Any idea where is the bug ? I can try a PR.

no string or function name obfuscation

I tried to obfuscate a simple hellow world script:
in the output: I simply made a regX search for .* = .* then replace all matches with nothing
the remaining code was my actual deobfuscate code and empty lines

NOTE TO DEVELOPER

Ok so.
You don't have any arguments. You just keep talking about my "ego" and "it's sad". But I'm just pointing out the
truth.
Beginners and skids (like you I suppose) think this obfuscation is good... but this cause lots of errors because of
the use of regex... and also the code is just surrounded by random variables who make the file really heavy and
easy to deobfuscate. So yes it is really really bad.
My obfuscator, Hyperion, is 1000x better than this one. The obfuscation is 1000x more complex and well-protected.

Put functions into dictionaries

You could put the functions into dictionaries, small example:

def foo(bar):
    print(bar)

func_dict = {
    'foo': foo
}

func_dict['foo']('Hello world')

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.