ioncube loader что это

Как установить ionCube?

Зачем нужен ionCube и как проверить его наличие

ionCube — это популярный способ шифрования php-файлов. Он бесплатный, скачать его можно прямо с официального сайта. В JBZoo практически весь код открыт, за исключением мест проверки лицензии. Начиная с версии 2.0.0 для корректной работы JBZoo обязательна поддержка модуля ionCube Loader.

ionCube и хостинг

На большинстве современных хостингов ionCube уже есть, и его нужно только подключить простым щелчком мыши. В противном случае, вы можете задать вопрос в техподдержку хостера и практически всегда его включают по первому запросу.

Как самостоятельно проверить наличие ionCube?

Способ #1

Информация из функции phpinfo(). Создайте PHP-файл с функцией phpinfo(), залейте на сайте и перейдите на него в браузере.

Способ #2

Запустите loader-wizard.php. Это официальный скрипт, который помогает определить текущую версию модуля, либо помочь в его установке. Если все хорошо, то вы увидите примерно следующую картину

Способ #3

Установите JBZoo 2.0 +. Если приложение запустилось, то все в порядке. В противном случае вы увидите следующее

Как самостоятельно установить модуль на свой сервер?

Скачайте loader-wizard.php и запустите его на своем сайте. Следуйте советам мастера установки. Он поможет определить, какой именно файл нужно скачать (ориентированный именно на вашу версию PHP) и что с ним делать дальше.

Cкачать предложенный ZIP-архив.

Распаковать в папку, указанную в пункте 2.

Указать путь до этого файла в файле php.ini с помощью строки следующего типа.

Внимание! Локальные сервера вроде Denwer и Open-Server зачастую имеют у себя в комплекте этот модуль. Поэтому перед установкой проверьте его присутствие.

Если после перезагрузки сервер не запускается, то скорее всего:

Источник

Ликбез по IonCube

IonCube — это набор утилит для командной строки, которые позволяют производить кодирование, обфускацию и лицензирование исходного кода, написанного на языке php.
Функционал IonCube очень обширен что бы о нем можно было написать в одной статье. Под катом я опишу основной функционал IonCube, который необходим для защиты кода от не лицензионного использования.

Список понятий

1. Кодирование исходного кода — процесс при котором исходный код, написанный на языке php, превращается в набор машинных команд, чтение и декодирование которых максимально затруднено.

2. Обфускация — приведение исходного кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию.

3. Лицензия — это специальный, закодированный приватным ключом файл, который необходим для запуска закодированного исходного кода.

Необходимое ПО

1. IonCube Encoder — набор бинарных файлов для разных ОС, при помощи которых можно кодировать исходный код, производить его обфускацию и генерировать лицензии. Платное ПО, но можно скачать триал версию.

Кодирование и обфускация исходного кода

В зависимости от версии PHP под которую написан код, IonCube Encoder предоставляет следующие бинарные файлы для выполнения кодирования и обфускации: ioncube_encoder, ioncube_encoder5 или ioncube_encoder53
Формат команды следующий:

./ioncube_encoder –o [options]

Ниже я перечислю основные опции необходимые для кодирования и обфускации кода:

—replace-target — опция говорит енкодеру что надо полностью заменить целевой каталог или файл, если он уже существует, новым каталогом или файлом. Например:

—copy @ — опция говорит енкодеру что надо копировать указанный файл или каталог (и все его подкаталоги) без кодирования его содержимого. Знак @ говорит о том, что путь к копируемому файлу или директории надо искать от корня кодируемой директории. Т.е. если было указано копировать каталог configs, то будет копироватся только каталог configs котороый лежит в корне кодируемой директории, а не например в подкатегории example/configs. В качестве примера можно привести каталог где лежат конфигурационные файлы и которые кодировать не нужно:

Читайте также:  какой материал лучше для бюстгальтера

—ignore @ — опция говорит енкодеру что надо игнорировать указанный файл или директорию (и все ее поддриректории), при этом в результирующий каталог они не копируются.

—obfuscate — запускает процесс обфускации кода, в качестве объектов, к которым применяется обфускация могут быть: functions, linenos, locals или all. Например:

—obfuscation-key «some_unique_key» — обязательный параметр для обфускации, который задает уникальный ключ, что делает практически невозможным процесс декодирования кода.

— опция говорит энкодеру, что файл при запуске должен запрашивать файл лицензии. Путь к файлу лицензии будет относителен запросившему его файлу, так что лучше здесь указывать просто название файла лицензии, который IonCube Loader будет искать сперва в том же каталоге, в котором находится скрипт, запросивший файл лицензии, а не найдя будет идти рекурсивно в верх вплоть до корневой директории. Таким образом файл лицензии можно сохранять просто в корневом каталоге, куда установлено ваше приложение. Например:

Создание лицензии

Лицензии создаются при помощи бинарного файла make_license. Формат команды для создания лицензии:

./make_license –-passphrase –o

—passphrase — эта опция задает секретный ключ, который используется для формирования подписи для лицензии. Внимание: ключ должен совпадать с ключем, который использовался при кодировании исходного кода.

Ограничение лицензии по серверам

—allowed-server [ ][@[ ]][< >] — эта опция используется для ограничения валидности лицензии по домену, IP или MAC адресу сервера, для которого она предназначена.

Примеры.
1. Ограничение по домену:
—allowed-server www.foo.com
—allowed-server www.foo.com,www.bar.com
—allowed-server 1.2.3.4@

2. Ограничение по IP адресу:

—allowed-server 192.168.1.4
—allowed-server 192.168.1.4,192.168.1.20

Примечания:
1. Когда закодированный файл запрашивается через web-сервер, то IP сверяется с тем IP, который присылает web-сервер.
2. Когда закодированный файл запрашивается на прямую, например когда имеем дело с php shell скриптами, то IP сравнивается только с первичным IP адресом сетевого интерфейса.
3. Нельзя указать в ограничении IP адрес 127.0.0.1

3. Ограничения по MAC адресу. MAC адрес должен состоять из 6-ти байт и должен быть представлен в шестнадцатеричном виде, например:

4. Комбинирование ограничений. IonCube позволяет комбинировать ограничения, например:

Ограничение лицензии по времени

— позволяет задать период, на протяжении которого с момента генерации лицензия является валидной. Периоды можно задавать в следующих величинах: секунды (s), минуты (m). часы (h) или дни (d). Например:

—expire-in 360s
—expire-in 20m
—expire-in 24h
—expire-in 365d

—expire-on — позволяет задать точную дату, до которой лицензия является валидной. Например:

Установка IonCube Loader

1. Скачайте IonCube Loader для вашей ОС, он распространяется бесплатно.

3. В вашем php.ini пропишите путь к скачаной библиотеке. Например:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3_ts.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.2.so

Обратите внимание что для PHP версией меньше 5.3 нужно указывать директиву zend_extension_ts если в хотите использовать библиотеку с функционалом «thread safety».

4. Перезагрузите web-сервер.

Вот в принципе и все, что нужно знать для защиты своего кода от не лицензионного использования. Больше информации Вы сможете найти на официальном сайте IonCube.

Источник

Пасхалка в ionCube — попытка разработчиков замести мусор под ковер?

Веб-разработчик знает, что скрипты, созданные в коммерческих целях, могут пойти гулять по сети с затёртыми копирайтами; не исключено, что скрипт начнут перепродавать от чужого имени. Чтобы скрыть исходный код скрипта и препятствовать его изменению, применяются обфускаторы, минификаторы и т.д. Один из самых давних и известных инструментов для шифрования скриптов на PHP — это ionCube. Появившийся в 2002, он продолжает следить за развитием PHP и заявляет о поддержке последних версий платформы. Как я покажу в этой статье, с поддержкой PHP 7 у ionCube далеко не всё в порядке.

Читайте также:  dwg чем открыть тип файла

Модель использования PHP-шифровщиков такая, что программист продаёт зашифрованный скрипт, а покупатель скрипта на своём сервере должен установить модуль расширения, который позволит выполнять зашифрованные скрипты. Скрипт, зашифрованный ionCube, выглядит примерно так:

Видно, что выводимая строка не зависит от вызванной функции, и выбирается случайно.

Напрашивается вопрос: зачем эти функции нужны, и что они делают?

Простые эксперименты

Для начала посмотрим, какие параметры _dyuweyrj4 принимает:

Похоже, что принимает два числа, но какие бы числа ни были, печатает те же самые афоризмы.

Поиск использования

На каком-то мутном индонезийском форуме удаётся найти запощенный в 2013 пример — скорее всего, полученный каким-то дизассемблером байткода PHP:

Что интересного в парах чисел (21711392, 920173696) и (21720496, 920165136)? Внимательный исследователь заметит, что XOR чисел в каждой паре даёт 932443808. Попробуем сами вызвать _dyuweyrj4 с парой чисел, дающих в результате XOR 932443808:

Не напечаталось ничего!

Погружаемся в отладчик

— через их Online PHP Encoder. (Результат шифрования приведён в самом начале поста.) К сожалению, это не помогает: _zend_op_array.reserved[3] остаётся нулевым. Зато убеждаемся, что у выполняющейся (безымянной) функции _zend_op_array.reserved[3] теперь заполняется:

Баг багом вышибают

Что получится, если пофиксить баг в ioncube_loader_win_7.3.dll, поставив проверку указателя перед его использованием? Для этого удобнее всего использовать x64dbg:

Значит, от (некорректной) проверки на нулевой указатель толку всё равно не было: в следующей вызываемой функции этот же указатель используется уже без проверки. Делаем вывод, что потенциальная уязвимость, позволявшая бы нам изменять память процесса PHP по произвольному адресу, и посредством этого сбежать из сэндбокса — например, вызывать функции, запрещённые администратором сервера — в ionCube Loader «закрыта» последовательностью багов, приводящих к непреднамеренному крэшу php.exe.

Что имел в виду автор?

Источник

Как установить ionCube и для чего нужен этот модуль

Сегодня поговорим о специальном модуле — ionCube, что это такое и для чего он нужен. Разберёмся, как установить ionCube loader на сервер. Лично мне он требуется для установки популярного среди пользователей joomla! и zoo приложения JBZoo, В этом посте я поясню как установить модуль ionCube на локальный сервер и на сервер вашего хостинга.

Итак, что такое ionCube?

Навигация по тексту

Программное обеспечение ionCube loader — это популярный способ шифрования php-файлов. Модуль полностью бесплатный и скачать его можно с официального сайта по ссылке: http://www.ioncube.com/loaders.php

Некоторые приложения требуют наличие этого модуля, в частности приложение, которое я часто использую в своей работе — JBZoo. Начиная с версии 2.0.0 для корректной работы JBZoo обязательна поддержка модуля ionCube Loader.

Большинство современных хостингов уже поддерживают модуль ionCube. В противном случае, вы всегда можете задать вопрос в техподдержку хостера и практически обычно его включают по первому запросу.

Как самостоятельно проверить наличие ionCube на сервере?

Как самостоятельно установить модуль ioncube на локальный сервер?

Если после перезагрузки сервер не запускается, то скорее всего

Как самостоятельно установить модуль ioncube на хостинг?

Как я уже говорил, большинство хостингов уже содержат включённый модуль ioncube, либо подключают его при первому требованию. Вот, к примеру, как рекомендуют подключать модуль на хостинге logol.ru:

Выполните следующие действия:
-скачайте библиотеку для архитектуры Linux (x86-64) в виде tar.gz или zip-архива с сайта http://www.ioncube.com/loaders.php
-разархивируйте файлы библиотеки (в результате появится каталог ioncube)
-загрузите каталог ioncube в домашний каталог

/ на вашей хостинговой площадке
в каталоге, где находится PHP-скрипт, для которого подключается ionCube,
-создайте файл php.ini со следующей строкой:
zend_extension=»/home/ВАШ_ЛОГИН_НА_CPANEL/ioncube/ioncube_loader_lin_5.2.so»
Пример:
zend_extension=»/home/cp123456/ioncube/ioncube_loader_lin_5.2.so»

Читайте также:  какой патронус у хагрида

Важно:
Указанная выше строка должна быть самой первой из всех подключаемых zend_extension.

Как видите, установить ioncube на сервер достаточно просто. Если возникнут вопросы, задавайте их в комментариях, постараюсь ответить.

Источник

Установка ionCube в Ubuntu 16.04

ionCube – это модуль PHP, предназначенный для загрузки зашифрованных PHP-файлов и ускоряет загрузку веб-страниц, что необходимо для корректной работы многих PHP-приложений. Данное руководство поможет установить ionCube на сервер Ubuntu 16.04.

Требования

1: Выбор версии ionCube

Версия ionCube должна совпадать с версией PHP. Чтобы выбрать правильную версию ionCube, нужно знать:

Если у вас 64-битный сервер Ubuntu, то, скорее всего, PHP использует ту же архитектуру, но лучше это проверить. Для этого можно использовать сценарий PHP, который извлечёт информацию о текущих параметрах PHP.

Создайте файл info.php в корневом каталоге веб-сервера (по умолчанию это /var/www/html) с помощью текстового редактора.

sudo nano /var/www/html/info.php

Вставьте в него следующий код:

На экране появится страница с таким заголовком:

PHP Version 7.0.8-3ubuntu3

Ниже будет представлен список параметров PHP.

Как видите, версия PHP указана в самом заголовке. В данном случае используется версия 7.0.8. Обратите внимание на строку System. Если в конце этой строки вы видите x86_64, вы используете 64-битную версию PHP, а если i686, то 32-битную.

Теперь можно загрузить ionCube.

2: Установка ionCube

Посетите сайт ionCube и найдите ссылку на соответствующую версию пакета. В данном случае это 64-битный пакет Linux. Скопируйте ссылку на архив tar.gz и загрузите файл.

tar xvfz ioncube_loaders_lin_x86-64.tar.gz

Примечание: Версия может отличаться.

Эта команда создаст каталог ioncube, в котором хранятся разные файлы для разных версий PHP. В данном случае нужен файл для версии PHP 7.0, он называется ioncube_loader_lin_7.0.so. Этот файл нужно скопировать в каталог расширений PHP, extension_dir. Чтобы найти путь к нему, снова откройте страницу:

Путь к этому каталогу будет указан в строке extension_dir (в данном случае это /usr/lib/php/20151012). Скопируйте файл в указанное место:

sudo cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/

Чтобы PHP-расширение загружалось, его нужно добавить в настройки PHP. Это можно сделать в конфигурационном файле php.ini, но лучше всё же создать отдельный файл для параметров расширения: так вы сможете загружать его раньше других расширений и избежать возможных конфликтов.

Чтобы узнать, где можно создать пользовательский конфигурационный файл, откройте страницу info.php:

Теперь нужно создать файл 00-ioncube.in в каталоге /etc/php/7.0/apache2/conf.d. Два нуля в начале файла позволяют загружать этот файл прежде других расширений PHP.

sudo nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini

Добавьте в файл такую строку:

Сохраните и закройте файл.

Чтобы изменения вступили в силу, перезапустите веб-сервер:

# Apache:
sudo systemctl restart apache2.service
# Nginx:
sudo systemctl restart nginx

Также можно перезапустить php-fpm:

sudo systemctl restart php7.0-fpm.service

3: Тестирование ionCube

Вернитесь на страницу info.php:

Обновите её и найдите ключевое слово ionCube. Вы увидите:

[…] Zend engine v3.0.0. Copyright © 1998-2016 Zend Technologies
with the ionCube PHP Loader (enabled) + Instruction Protection from ioncube24.com […]

Это значит, что расширение ionCube загружено на сервер.

После установки ionCube страницу info.php нужно удалить: она открывает доступ к конфиденциальным данным сервера и подвергает его опасности.

sudo rm /var/www/html/info.php

Также вы можете удалить дополнительные файлы ionCube:

Расширение ionCube полностью готово к работе. Теперь вы можете использовать его для поддержки любого PHP-приложения, которому необходим этот модуль.

Источник

Сказочный портал