Need help with php-obfuscator?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

naneau
513 Stars 167 Forks 38 Commits 17 Opened issues

Description

A parsing PHP obfuscator

Services available

!
?

Need anything else?

Contributors list

# 200,887
PHP
18 commits
# 186,311
PHP
Shell
C
yay
3 commits
# 457,147
PHP
1 commit
# 90,012
Scala
Homebre...
Ruby
clamav
1 commit
# 113,682
C++
pytorch
PHP
Jupyter...
1 commit
# 60,095
PHP
whatsap...
1 commit
# 457,148
PHP
1 commit
# 20,074
Shell
C
Perl
Flask
1 commit

PHP Obfuscator

Scrutinizer Code Quality

This is an "obfuscator" for PSR/OOp PHP code. Different from other obfuscators, which often use a (reversible)

eval()
based obfuscation, this tool actually parses PHP, and obfuscates variable names, methods, etc. This means is can not be reversed by tools such as UnPHP.

This library was written out of the need to obfuscate the source for a private library which for various reasons could not be shared without steps to protect the source from prying eyes. It is not technically feasible to "encrypt" PHP source code, while retaining the option to run it on a standard PHP runtime. Tools such as Zend Guard use run-time plugins, but even these offer no real security.

While this tool does not make PHP code impossible to read, it will make it significantly less legible.

It is compatible with PHP 5.3, 5.4 and 5.5, but needs PHP 5.4+ to run.

Usage

After cloning this repository (

git clone https://github.com/naneau/php-obfuscator
) and installing the dependencies through Composer (
composer install
), run the following command to obfuscate a directory of PHP files:
./bin/obfuscate obfuscate /input/directory /output/directory

If you've installed this package through Composer, you'll find the

obfuscate
command in the relevant bin dir.

Configuration

You may find that you'll need to prevent certain variables and methods from being renamed. In this case you can create a simple YAML configuration file

parameters:

# Ignore variable names
obfuscator.scramble_variable.ignore:
    - foo
    - bar
    - baz

# Ignore certain methods names
obfuscator.scramble_private_method.ignore:
    - foo
    - bar
    - baz

You can run the obfuscator with a configuration file through

./bin/obfuscate obfuscate /input/directory /output/directory --config=/foo/bar/config.yml

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.