Обфускация PHP кода бесплатно — реально ли?
Скрипт использует мои API по максимуму, но нужно как-то cкрыть обработчики и прочее от глаз пользователя.
Есть ли хорошие варианты обфускации PHP кода без проблем и лишней головной боли?
Качал Zend Guard 7.0 что-то не впечатлило
- Вопрос задан более трёх лет назад
- 14701 просмотр
Комментировать
Решения вопроса 0
Ответы на вопрос 3
У ioncube есть Online Encoder за 0,5 бакса я файлики до 30КБ скармливал (этого более чем достаточно для проверки лицензии и нескольких критичных для работы всего скрипта объектов)
Ответ написан более трёх лет назад
Нравится 4 1 комментарий
Whitespace Обфускатор для PHP
Прочитав статью про обфускацию в JavaScript (а именно 3-ю часть статьи), я заинтересовался подобным обфускатором для PHP.
Обфускатор, о котором шла речь в статье превращал JavaScript-код в невидимый (на первый взгляд), состоящий из табуляций и пробелов код.
Суть заключается в том, чтобы каждый символ исходного кода представить как переведенный в бинарную систему код этого символа. Потом заменить 1 на пробелы, а 0 на табуляцию (можно конечно и наоборот).
С реализацией этого алгоритма на PHP все просто, как и на JavaScript.
Код обфускатора:
function obfuscate($code) < $len = strlen($code); $obf = ''; for ($i = 0; $i < $len; $i++) < // Получаем и переводим в бинарный вид код i-того символа $bin = decbin(ord($code[$i])); // Если значение выше получилось не восьмизначным, тогда нужно дописать спереди недостающие 0 $bin = ($binLen = strlen($bin) >7) ? $bin : implode('', array_fill(0, 8 - strlen($bin), '0')) . $bin; // Теперь просто заменяем 1 на табы, а 0 на пробелы и конкатенируем с уже существующей строкой, которая будет подаваться на выход $obf .= str_replace(array('1', '0'), array(chr(9), chr(32)), $bin); > return $obf; >
Тут вроде бы все нормально (если не вдаваться в детали), теперь приведу пример вызова обфусцированного кода.
Деобфускатор («исполнятор»)
function include_o($file) < $file = trim($file); // Проверяем файл на существование if ( empty($file) || !is_readable($file) ) < throw new Exception("Filename is empty or file isn't readable"); >$string = file_get_contents($file); $len = strlen($string); $out = ''; for ($i = 0; $i < $len; $i++) < /* * Каждые 8 символов заменяем на нули и единицы, * Переводим из двоичной системы исчисления в десятеричную и ставим на это место соответствующий символ */ $out .= chr(bindec(str_replace(array(chr(9), chr(32)), array('1', '0'), substr($string, $i, 8)))); $i += 7; >if (!empty($out)) < eval($out); >>
Вроде бы, возвращаемое функцией значение будет «mixed» (если я правильно понимаю, то void — как бы его часть?), но это — если вдаваться в подробности.
Заключение
Мне кажется, что получилось довольно сносно, но претендовать на работающий (подразумевается использующийся на практике) обфускатор этот тип все же не может (знаю, сказана банальная вещь). Это скорее сделано для веселья, по крайней мере, мне было интересно увидеть результат.
Спасибо за внимание, удачи.
PHP Encoder & Obfuscator – Защита Вашего PHP кода + плагины VIP

PHP Encoder & Obfuscator – Защита Вашего PHP кода + плагины VIP
Grek 28 июля, 2019 VIP , Разное , Скрипты 0 Comments 1052 views
PHP Encoder & Obfuscator
Данный скрипт позволяет защитить ваш php код. Основные возможности:
Динамическая защита.
Каждый раз генерируется новый код
Обфускация переменных и функций
Функции и переменные переименовываются в нечитабельный набор символов
Защита по домену и/или IP
Можно разрешить использовать скрипт для определенного домена или IP
Защита по времени
Можно выставить время жизни скрипта
Простота использования
Нет необходимости заставлять клиента устанавливать дополнительно ПО на сервер или искать хостинг с поддержкой нужного кодировщика
PHP Encoder & Obfuscator
With this encoder script you can make your PHP source code unreadable for normal people but the skript will still work on your webserver. This is very useful when you give a script to someone but you don’t want them to view your php source code.
- Secure your PHP scripts
- Limit your PHP Code to run only on defined domains
- Add an expiration date to your source
- Easy to use encoding interface
- Very well documented
- Скачивание доступно подписчикам. Некоторые ресурсы доступны с подпиской VIP, Если вы оплатили LITE вы не увидите вип ресурсы Download is available to subscribers. Some resources are available with a VIP subscription.If you paid for LITE, you will not see the VIP resources. ПодпискаПравила
Установка и включение IonCube в PHP на хостинг

IonCube — это набор утилит для командной строки, которые позволяют производить кодирование, обфускацию и лицензирование исходного кода, написанного на языке php.
Кодирование исходного кода — процесс при котором исходный код, написанный на языке php, превращается в набор машинных команд, чтение и декодирование которых максимально затруднено.
Обфускация — приведение исходного кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию.
Лицензия — это специальный, закодированный приватным ключом файл, который необходим для запуска закодированного исходного кода.
Необходимое программное обеспечение:
IonCube Encoder (платная программа) — набор бинарных файлов для разных операционных систем, при помощи которых можно кодировать исходный код, производить его обфускацию и генерировать лицензии.
IonCube Loader (IonCube Загрузчик) (бесплатное ПО) — поставляется в виде .so или .dll библиотеки, необходим для декодирования исходного кода закодированного при помощи IonCube Encoder.
Как скачать IonCube Loader
Скачать IonCube Loader (IonCube Загрузчик) и прочитать англоязычную документацию можно на официальном сайте по ссылке https://www.ioncube.com/loaders.php.
Перед установкой IonCube PHP Loader необходимо собрать информацию о программном обеспечивании в котором планируется его запуск. Выясним разрядность операционной системы, где х86_64 — значит 64-х битная ОС, i386 — 32-х битная ОС.
uname -a Linux dieg.info 5.13.0-40-generic 45-Ubuntu SMP Tue Mar 29 14:48:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Исходя из полученных результатов — определяем разрядность системы. В показанном примере система является 64-разрядной. Основываясь на этой информации, качаем установочный архив IonCube Loader с официального сайта. Для этого подключитесь к VPS по SSH с правами суперпользователя (root) и воспользуйтесь командой wget:
Для 32-разрядных систем:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
Для 64-разрядных систем:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Распакуем скаченный файл в директорию /usr/local
tar xzf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local
В дальнейшем, из созданной директории /usr/local/ioncube, нас будут интересовать 2 файла ioncube_loader_lin_[номер версии].so и ioncube_loader_lin_[номер версии]_ts.so.
Как выяснить версию PHP, установленного на вашем сервере
Сейчас на серверах одновременно установлены несколько версий PHP. Вы должны определиться в какую версию PHP вы будите устанавливать IonCube Loader.
Важно найти правильный файл конфигурации php (php.ini), поскольку у Вас в системе может быть несколько таких файлов. Нам нужно включить ionCube только в действующем (активном) файле. Команда php -i предоставляет подробную информацию об активной версии php в интерфейсе командной строки:
$ php -i | grep php.ini Configuration File (php.ini) Path => /etc/php/7.4/cli Loaded Configuration File => /etc/php/7.4/cli/php.ini
Строки, что мы видим Выше говорят нам о том, что искомый файл находится по пути /etc/php/7.4/cli/php.ini.
Важно сделать еще одну проверку! Возможно, Веб-сервер был настроен для работы с другой версией PHP, также установленной в Вашей системе. Чтобы обнаружить это, вам нужно поместить файл с командой phpinfo(); в корневой папке (document root) вашего сайта для которого вы подключаете IonCube Loader. Затем запустить его. Например, вы создали файл 1.php в корне, тогда в веб-браузере вызываете url: https://example.com/1.php

По умолчанию PHP хранит файлы конфигурации в следующем месте. Например, файлы конфигурации для PHP 7.4 хранятся в следующих папках:
/etc/php/7.4/cli/php.ini # для PHP CLI
/etc/php/7.4/fpm/php.ini # для PHP FPM
/etc/php/7.4/apache/php.ini # для PHP с Apache
Настройка загрузчика ionCube в PHP
Теперь отредактируйте необходимые файлы конфигурации PHP или вы можете обновить все файлы конфигурации, найденные выше. Добавьте приведенный ниже код в начало файла php.ini в зависимости от вашей версии PHP:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4.so #zend_extension = /usr/local/ioncube/ioncube_loader_lin_7.4_ts.so
Число в имени файла соответствует версии PHP, для которой он собран, а _ts это Thread Safe версии. Зачастую используют обычную версию 7.4.so (не Thread Safe).
Если у вас установлен Zend Optimizer, то вводить указанные строки в файле php.ini следует перед строками Zend Optimizer (а не после), иначе произойдет ошибка в работе веб-сервера. Если же у вас ещё не установлен ZendOptimizer, но понадобится в будущем рекомендуется устанавливать его после установки IonCube Loader.
После внесения указанных строк необходимо сохранить их в файле и выйти из редактора.
После сохранения изменений в конфигурационном файле, потребуется перезапуск веб-сервера (Apache, PHP-FPM) для того, чтобы внесенные изменения вступили в силу. Для этого введите следующие команды:
systemctl restart apache2 systemctl restart php7.4-fpm.service
Проверка конфигурации ionCube PHP
Вы добавили настройки ionCube в свою конфигурацию php. Чтобы проверить конфигурацию, введите команду:
$ php -v PHP 7.4.8 (cli) (built: Jul 13 2020 16:46:22) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with the ionCube PHP Loader + ionCube24 v10.4.1, Copyright (c) 2002-2020, by ionCube Ltd. with Zend OPcache v7.4.8, Copyright (c), by Zend Technologies
Видим, что загрузчик PHP ionCube настроен для вашей версии PHP. Точно так же для просмотра конфигурации Apache используйте файл с командой phpinfo().
Еще одна проверка, при помощи команды:
php –m [PHP Modules] . iconv ionCube Loader json libxml mbstring .
можно получить список подключенных модулей PHP, среди которых должен быть и IonCube.
Установка IonCube Loader завершена!
Хостинг IonCube Loader
На виртуальных хостинг зачастую возникают проблемы с установкой IonCube, вам нужен хостинг VPS. Рекомендую VPS от Zomro и Hostens c поддержкой IPv6.

11 Самых Популярных Статей
- ulimit (limits.conf) управление ограничениями ресурсов ОС Linux
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Что такое страны tier 1,2,3 и как правильно выбрать ГЕО для рекламной кампании
- Настройка, использование GitLab CI/CD
- Что означает «> /dev/null 2>&1» или перенаправление STDIN, STDOUT и STDERR?
- Настройка и использование сервера OpenVPN в Linux
- PostgreSQL: создать БД, пользователя, таблицу, установить права
- Виды кодировок символов
- Использование rsync в примерах
- my.cnf примеры конфигурации MySQL, MariaDB
- dig проверка DNS сервера
11 Самых Популярных Обзоров
- ТОП 4 лучших антидетект браузеров в 2023 (Бесплатные & Платные)
- Обзор и отзывы о Namecheap в 2023 году
- Хостинг Zomro (Зомро)
- Обзор браузера Dolphin
- ТОП 3 Проверенных VPN, Прокси, Хостинг VPS Турция в 2023
- Что такое абузоустойчивый хостинг (bulletproof)?
- Обзор и отзывы о 4VPS (FourServer) в 2023 году
- Обзор и отзывы AstroProxy в 2023 году
- Обзор и отзывы о PQ Hosting в 2023 году
- Обзор и отзывы о Hostinger в 2023 году: преимущества и недостатки
- Проверенные VPS / VDS хостинг провайдеры