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-приложения, которому необходим этот модуль.
Как установить ionCube?
Зачем нужен ionCube и как проверить его наличие
ionCube — это популярный способ шифрования php-файлов. Он бесплатный, скачать его можно прямо с официального сайта. В JBZoo практически весь код открыт, за исключением мест проверки лицензии. Начиная с версии 2.0.0 для корректной работы JBZoo обязательна поддержка модуля ionCube Loader.
ionCube и хостинг

Как самостоятельно проверить наличие ionCube?
Способ #1
Информация из функции phpinfo(). Создайте PHP-файл с функцией phpinfo(), залейте на сайте и перейдите на него в браузере.
Способ #2
Запустите loader-wizard.php. Это официальный скрипт, который помогает определить текущую версию модуля, либо помочь в его установке. Если все хорошо, то вы увидите примерно следующую картину
Способ #3
Установите JBZoo 2.0 +. Если приложение запустилось, то все в порядке. В противном случае вы увидите следующее
Как самостоятельно установить модуль на свой сервер?

Cкачать предложенный ZIP-архив.
Распаковать в папку, указанную в пункте 2.
Указать путь до этого файла в файле php.ini с помощью строки следующего типа.
Внимание! Локальные сервера вроде Denwer и Open-Server зачастую имеют у себя в комплекте этот модуль. Поэтому перед установкой проверьте его присутствие.
Если после перезагрузки сервер не запускается, то скорее всего:
IonCube для начинающих. Ликбез. С чего начинается успешная защита php кода.
sitecreator
Administrator
Автор: sitecreator.ru Просьба при перепечатке данного текста ссылаться на данную страницу форума с указанием автора.
Друзья, постараюсь рассказать максимально подробно о различных способах защиты вашего авторского кода на php от банального воровства и его распространения без вашего согласия. Также немаловажным мотивом для приведения в нечитаемый вид вашего программного кода может быть желание защитить вашу уникальную идею, реализованную в программе на языке php, от заимствования вашими конкурентами-программистами.
Одним из успешных инструментов для защиты вашего кода являются инструменты шифрования (кодирования) вашего кода от компании ionCube Ltd.
Файл с программным кодом после обработки ioncube-кодировщиком (encoder-ом) принимает непригодный для анализа человеком вид, т.е. бессмысленный для анализа набор символов, который ничего общего с программным кодом не имеет.
Чтобы такой зашифрованный (закодированный) код мог исполняться на сервере нужно чтобы для движка php было подключено расширение ioncube loader. У любого хостинг-провайдера на общем хостинге (виртуальный хостинг) всегда есть данное расширение для php и оно практически всегда включено по умолчанию. Обычно у пользователя хостинга есть возможность самостоятельно включать/отключать и выбирать версию ioncube loader-а для конкретной версии php. Всегда рекомендуется чтобы версия ioncube loader-а (ионкуб лоадера) была максимально актуальной (свежей) у вашего хостера. На сегодняшний день это версия 10+ (10.3.2 по состоянию на 2 января 2019-го).
Вы всегда можете проверить наличие ioncube в php если напишите простой код с функцией phpinfo(). Код выводит всю необходимую информацию. Включая версию лоадера.
Вас должна интересовать эта строка в выводе phpinfo():
Покажу фрагмент вывода:
Зашифрованный ионкубом (ионкуб энкодером) код выглядит так:
Просто мне так удобнее работать с консольными приложениями, т.к. после обновления программы мне не нужно думать о новых путях, по которым установилась программа, т.к. каждая новая версия обычно ставится по новому пути.
И вы можете просто запустить в консоли команду
Разумеется, если скопировали в эту папку файлы установленного ионкуба. Получите вывод информации о версии энкодера и поддержке php.
Есть много вкладок со всевозможными настройками.
Вы всегда можете увидеть какая же командная строка была сформирована. И можете запустить ее при желании через Windows cmd или Windows PowerShell (который есть аналог cmd ). Для этого выбираете в меню пункт «View Encoder Command Line» (Показать командную строку для энкодера).
Пример командной строки показан ниже.
Как вы можете видеть, то запускается консольная программа с параметрами. В данном случае это энкодер для php 7.1.
Т.е. вот эта программа: ioncube_encoder71.exe
Если в вашем Open Server для конкретного php не подключено расширение ioncube loader, то сделайте это самостоятельно. правка производится в конфиге php.ini для конкретной версии php. Только не надо пытаться править файлы напрямую, делайте через меню Open Server.
Это делается так (откроется блокнот, после правок нажать «сохранить» и перезапустить Open Server):
Если вы выбираете в настройках проекта (Project Settings) версию php 5.6, то закодированные (ioncube encoder-ом) файлы будут работать как под версией php 5.6, так и под версией 7.0. Не пытайтесь искать отдельно версию под 7.0, такой не существует.
Соответственно кодировку для указанных версий будет выполнять программа ioncube_encoder56.exe.
Также если файл закодирован программой ioncube_encoder71.exe, то этот файл будет запускаться как под php 7.1, так и под php 7.2. Если вы работаете в графическом интерфейсе (GUI), то выбираете в этом случае PHP 7.1.
Не могу рекомендовать выбирать режим «PHP 5.6 & 7.1«, т. к. наблюдал проблемы на ранних версиях ioncube loader-а 10. На более поздних проблем не замечал, но даже если вы укажите в требованиях использовать ioncube loader 10+, то не можете исключить ситуацию, что на сервере окажется одна из первых «10-к», которая не лишена некоторых багов.
Выдержка из официальной документации:
Принципы работы и возможности утилиты IonCube
Инструмент для защиты программного обеспечения IonCube написан на языке PHP еще в 2002 году, но и до сегодня активно используется специалистами в области системного администирования.
Принципы установки IonCube на сервер. Если Вы хотите установить библиотеку PHP на свой сервер, Вам понадобятся полные доступы к нему. Это без проблем можно сделать на выделенном сервере или услуги VPS. Но даже на некоторых виртуальных хостингах можно включить поддержку ionCube и выбрать версию Loader-а. На тарифах виртуального хостинга HyperHost данную функцию также можно включить в настройках PHP.
Для чего используют IonCube? Инструмент IonCube используют для разных целей, например, веб-студии могут использовать данную технологию для защиты своих PHP приложений от несанкционированного доступа к исходному коду. Много приложений требуют присутствие IonCube для корректной работы. Если вы купили скрипт, а он защищенный ioncube encoder’ом, то обратите внимание на наличие ioncube loader’а на виртуальном хостинге, которым Вы пользуетесь.
Модуль полностью бесплатный и скачать его можно с официального сайта ioncube.com. Данное ПО обеспечивает дешифрацию и эффективное выполнение откомпилированного и зашифрованного php кода.
Если Вы хотите защитить код от несанкционированного использования, рекомендуется самостоятельно установить IonCube на свой сервер (конечно же, это может сделать техподдержка хостинг-провайдера, у которого Вы держите сервер). Для установки IonCube следует проделать несколько несложных шагов.
После установки утилиты можно воспользоваться основными функциями IonCube : производение кодирования, обфускации и лицензирование исходного кода.
Среди недостатков стоит выделить отсутствие готовых генераторов ключей. Это требует создание своего собственного генератора и программного комплекса, который будет отвечать за множество функций. Например, за создание, хранение и учет этих же ключей.
Надеемся, Вы нашли ответы на интересующие вопросы в данной статье! Если понадобится дополнительная помощь или информация, обращайтесь в круглосуточную техподдержку Hyper Host™, мы всегда будем рады помочь!
Ликбез по 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.














