Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

obfupy

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

obfupy

obfupy is a Python 3 library that can obfuscate whole Python 3 projects, transform the source code to obfuscated and hard to understand code. obfupy aims to produce correct and functional code.

  • 0.1.1
  • PyPI
  • Socket score

Maintainers
1

obfupy -- Python source code obfuscator aiming to produce correct and functional code

obfupy is a Python 3 library that can obfuscate entire Python 3 projects, transforming source code into obfuscated and difficult-to-understand code. obfupy aims to produce correct and functional code. Several non-trivial real-world projects were tested using obfupy, such as Flask, Nodezator, Algorithms collection, and Django (not all features are enabled for Django).

Facts and features

  • Obfuscation methods
    • Rewrite the "if" conditional to include many confusing branches.
    • Rename local variable names.
    • Extract the function and have the original function call the extracted function, then rename the parameters in the extracted function.
    • Create alias for function arguments.
    • Obfuscate numeric and string constants and replace them with random variable names.
    • Replace built-in function names (e.g. "print") with random variable names.
    • Add useless control flow to for and while.
    • Remove doc strings.
    • Remove comments.
    • Add extra spaces around operators.
    • Make indents larger to make it harder to read.
    • Add extra blank lines between code lines.
    • Encode the whole Python source file with base64, zip, bz2, byte obfuscator, and easy to add your own codec.
  • Customizable
    • There are multiple layers of independent transformers. You can choose which transformers to use and which not to use.
    • The non-trivial transformers such as Rewriter, Formatter, support comprehensive options to enable/disable features. If any feature doesn't work well for your project, you can just disable it.
  • Well tested
    • There are tests that cover all features.
    • Tested with several real world non-trivial projects such as Flask, Nodezator, Algorithms collection, and Django.

License

Apache License, Version 2.0

Version 0.1.1

Source code

https://github.com/wqking/obfupy

Dependencies

obfupy requires Python 3.9 or later, it doesn't have any other dependencies.

Install

Install from pip package
pip install obfupy

Install from source code
Clone obfupy repository, change directory to the root of obfupy, then,
pip install -e .

Use from source code without installation
Clone obfupy repository, add following lines in the beginning of your script,

import sys
sys.path.append(PATH_TO_OBFUPY)

Quick start

A typical Python script using obfupy looks like,

import obfupy.documentmanager as documentmanager
import obfupy.util as util
import obfupy.transformers.rewriter as rewriter
import obfupy.transformers.formatter as formatter

inputPath = PATH_TO_THE_SOURCE_CODE
outputPath = PATH_TO_OUTPUT

# Prepare source code files as DocumentManager
fileList = util.findFiles(inputPath)
documentManager = documentmanager.DocumentManager()
documentManager.addDocument(util.loadDocumentsFromFiles(fileList))

# Transform the source code with various transformers

# Transformer Rewriter
rewriter.Rewriter().transform(documentManager)
# Transformer Formatter
formatter.Formatter().transform(documentManager)
# There are other transformers

# Write the obfuscated code to outputPath
util.writeOutputFiles(documentManager, inputPath, outputPath)

Documentations

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc