YAK Pro - Php Obfuscator
YAK Pro stands for Yet Another Killer Product.
Free, Open Source, Published under the MIT License,
YAK Pro - Php Obfuscator is available on GitHub!
it simply aims to be the best obfuscation tool for php.
( Please star it if you like it… )
This tool parses php using PHP-Parser.
The yakpro-po.cnf self-documented file contains many configuration options!
Take a look at it!
What is Php Obfuscation?
When you have a php project you want to distribute, as php is a script interpretor, you distribute also all the sources of your software!
You may want, for any reason, that other people do not understand, modify, or adapt your software.
As your software must be understandable by the php runtime, but needs to be very difficult to understand by human people, obfuscation is a very good way to achieve this goal.
Wikipedia definition of Obfuscation.
YAK Pro - Php Obfuscator Obfuscation Main Features:
- Removes all comments, indentation, and generates a single line program file.
- Obfuscates if, else, elseif, for, while, do while by replacing them with if goto statements.
- Obfuscate string literals.
- Scramble names for:
- Variables, Functions, Constants.
- Classes, Interfaces, Traits,
- Properties, Methods.
- Shuffles Statements
- Recursivly obfuscates a project's directory.
- Makefile like, timestamps based mechanism, to re-obfuscate only files that were changed since last obfuscation.
- Many configuration options that lets you have full control of what is obfuscated within your project!
Why Yet Another Php Obfuscator?
I began testing some already existing php obfuscation tools, but I did'nt found one that was fitting all my needs.
I wanted a simple command line tool, based on a highly customisable config file, that would be able to:
- Be fast and re-obfuscates only files that were changed based on timestamps of files.
- Preserve some files and/or directories from obfuscation.
- Do not include in the obfuscated target, some files/directories that are present on the source project.
- Accepts lists of names and/or name prefixes to not obfuscate.
So I started to write this tool.
Version 1.0 has been written within a few days...