расшифровать ioncube php loader

Ликбез по 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.

Источник

Frequently Asked Questions

Loaders

Installing Loaders is easy when done correctly, and on most servers an installation will work without a problem. However there is no such thing as a «standard PHP installation», and servers can be setup in many different ways, and with different features enabled or disabled.

If you have problems running scripts and installing Loaders, here are explanations for the most likely symptoms that you may see.

If you are on a shared server, please make sure that you have run the ioncube-loader-helper.php script, and clicked the link to test runtime installation. Unless the server configuration has disabled the display of errors, you are likely to see a message that you will find explained here.

Q. I visited a website and it said that I needed to install Loaders. Why, and how do I do this
A. This means that the website is not setup correctly. If this is not your own website you can ignore the message, and you do not need to install anything on your computer. If you are the site administrator, your site requires the ionCube Loader to be installed.

Q. I am trying to install a PHP product and it is asking for Loaders. What do I do
A. The provider of the scripts should be able to assist and it is best to contact them in the first instance. Installing Loaders is generally easy though, and we provide a script called the Loader Wizard on our Loaders page that you can install on your site to advise.

Q. Where can I find Loaders
A. Loaders for common operating systems and architectures can be found on our Loaders page.

Q. How can I install Loaders
A. A script called the Loader Wizard is available on the Loaders page that assists with installation. Install the script onto your website and access from your browser for instructions. There is also an installer program for Windows that can deploy Loaders remotely.

Q. How can I tell if a Loader is already installed
A. If a Loader is already installed in the php.ini file, it will show up near the start of phpinfo output in the box that mentions the PHP engine.

Q. I checked your Loaders page and cannot find Loaders for (e.g.) RedHat Linux. Do you support it
A. Most likely yes. RedHat, Debian, Mandrake, SuSE are just some of the many distributions of the same Linux operating system. The ionCube Loaders are dependent on the operating system (e.g. Linux) and processor type, (e.g. x86), but not any particular distribution.

Q. Which Loader package do I need
A. This depends on the target system. The Loader Wizard script will usually be able to detect and indicate which package and Loader is required.

Q. I need Loaders that I can’t find on your Loaders page. Can I get these
A. We have Loaders for common platforms, but if you cannot find Loaders for your system please contact us via the helpdesk and we may be able to assist.

Q. What does ELF file data encoding not little-endian mean
A. This means that the Loaders are not the correct ones for your operating system or architecture. Little endian platforms are usually x86 or x86_64, so perhaps you have the ppc or sparc Loaders by mistake. Check your operating system type and architecture, and reinstall the correct Loaders for your system.

Q. What does wrong ELF class: ELFCLASS32 mean
A. This means that the Loaders are 32 bit (e.g. Linux x86) but the processor is 64 bit (e.g. Linux x86_64). Install the correct Loaders for the target system.

Q. What does wrong ELF class: ELFCLASS64 mean
A. This means that the Loaders are 64 bit (e.g. Linux x86-64) but the processor is 32 bit (e.g. Linux x86). Install the correct Loaders for the target system.

Q. What does unsupported file layout mean
A. This means that the Loaders are not the correct ones for your operating system or architecture. e.g. you may have the AMD64 FreeBSD 6 Loader when you need the x86 FreeBSD 4 Loader.

If you are on a shared host without full access to the system, ask the hosting company to do this for you.

Q. What does undefined symbol: compiler_globals mean
A. This means that PHP is likely built with «Thread Safety» enabled but the non-thread safe Loader is being used. Try using the Loader for your version of PHP that has _ts in the name.

Q. What does undefined symbol: zend_hash_destroy mean
A. This can occur if PHP is configured with the option
—enable-versioning
This option can prevent the export of global PHP API symbols, causing failure when attempting to link libraries such as the Loader or Zend Optimiser. PHP must be rebuilt without that option so that the PHP API is correctly visible. A phpinfo page should show at the top of the page what options were used to configure PHP, and should confirm that the option had been used.

Q. I see cannot open shared object file: No such file or directory but I know that the Loader exists. Why
A. First double check that the Loader really is in the location being tried. If it is then the error means that the Loader shared library is not in the correct format for your operating system or architecture. Often this is because the x86_64 64 bit Loaders are installed on a 32 bit system, or the x86 32 bit Loaders are installed on a 64 bit system. The Loader Wizard script will usually be able to advise.

Q. I updated the php.ini file and the Loader still does not work. Why
A. There are several things to check.

General Points

Installing on Windows

Copyright 2002-2021 ionCube Ltd. VAT GB-814942816. All rights reserved. ionCube and the ionCube logo are registered trademarks of ionCube Ltd.
Prices exclude VAT. VAT is applied if purchasing from the UK or from the European Union by a non-business customer. The shopping cart will show any VAT due based on your country before the purchase is finalized.

Источник

ioncube декодер

Подскажите, пожалуйста, можно ли декодировать файлы зашифрованные ioncube?

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Re: ioncube декодер

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Re: ioncube декодер

хотя. если в похапе напихать дебаг кода и всяких штук, потом скомпилировать интерпретатор, то может быть можно и отловить нечто такое что потом можно будет восстановить в PHP код. хотя врядли.

Re: ioncube декодер

А вот это что? http://www.qinvent.com/cyrj/dezender/index-en.php Очередной развод? Или действительно могут взломать?

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Re: ioncube декодер

сдается мне что да.. возможно, если оно действительно работает, то не оригинальный код восстанавливается. просто я как-бы очень плотно с ioncube работаю, и про случаи 1:1 декодирования не слышал.

Re: ioncube декодер

А как этот ioncube вообще работает? У меня есть несколько закодированных фалов привязанных к домену, это привязка идет в самом ioncube?

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Re: ioncube декодер

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Re: ioncube декодер

> У меня есть несколько закодированных фалов привязанных к домену

кстати, попробуй в /etc/hosts забить нужный домен на фактический IP сервера, должно помочь ^__^

Re: ioncube декодер

> кстати, попробуй в /etc/hosts забить нужный домен на фактический IP сервера, должно помочь ^__^

не, к сожалению не помогло 🙁

Re: ioncube декодер

> Подскажите, пожалуйста, можно ли декодировать файлы зашифрованные ioncube?

Re: ioncube декодер

> если в похапе напихать дебаг кода и всяких штук, потом скомпилировать интерпретатор, то может быть можно и отловить нечто такое что потом можно будет восстановить в PHP код

Нет там PHP-кода. ionCube компилирует файл в байт-код (типа zend-compile_file()), оптимизирует его, проводит обфускацию (если заданы параметры в командной строке) и затем шифрует. Исходного кода там нет в принципе, только своего рода «ассемблер».

Выполняет код (сюрприз!) сам ionCube (на стадии ZE Request Init), так что установка хука на zend_execute ничего не даст (он просто не вызовется).

Re: ioncube декодер

> У меня есть несколько закодированных фалов привязанных к домену

К домену или IP-адресу?

> это привязка идет в самом ioncube?

Нет, привязка либо в лицензии, либо в самих закодированных файлах.

Попробуйте перехватить сетевой трафик — я больше чем уверен, что ionCube спрашивает у внешнего DNS сервер настоящий адрес/домен.

Источник

IonCube для начинающих. Ликбез. С чего начинается успешная защита php кода.

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

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():

Покажу фрагмент вывода:

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Зашифрованный ионкубом (ионкуб энкодером) код выглядит так:

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Просто мне так удобнее работать с консольными приложениями, т.к. после обновления программы мне не нужно думать о новых путях, по которым установилась программа, т.к. каждая новая версия обычно ставится по новому пути.
И вы можете просто запустить в консоли команду

Разумеется, если скопировали в эту папку файлы установленного ионкуба. Получите вывод информации о версии энкодера и поддержке php.

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Есть много вкладок со всевозможными настройками.

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Вы всегда можете увидеть какая же командная строка была сформирована. И можете запустить ее при желании через Windows cmd или Windows PowerShell (который есть аналог cmd ). Для этого выбираете в меню пункт «View Encoder Command Line» (Показать командную строку для энкодера).

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Пример командной строки показан ниже.
Как вы можете видеть, то запускается консольная программа с параметрами. В данном случае это энкодер для php 7.1.
Т.е. вот эта программа: ioncube_encoder71.exe

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Если в вашем Open Server для конкретного php не подключено расширение ioncube loader, то сделайте это самостоятельно. правка производится в конфиге php.ini для конкретной версии php. Только не надо пытаться править файлы напрямую, делайте через меню Open Server.
Это делается так (откроется блокнот, после правок нажать «сохранить» и перезапустить Open Server):

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Если вы выбираете в настройках проекта (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 php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Выдержка из официальной документации:

Источник

Running Encoded PHP Scripts with ionCube Loader

So, log in to the Jelastic dashboard with your credentials and follow the instruction how to start operating encoded scripts in a matter of minutes.

ionCube Loader Add-On Installation

1. First of all, let’s ensure you have a proper PHP environment for processing your protected code with ionCube Loader.

For that, launch the environment topology wizard (by clicking either New Environment button at the dashboard top or Change environment topology icon next to the existing one) and switch to PHP tab. расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Here, application server choice depends only on your preferences (since both Apache and NGINX are supported), whilst a little more attention should be paid to the PHP versions list.

When selecting a particular engine, you need to consider it’s compatibility with ionCube Encoder version your scripts were initially converted with. As a general rule of thumb, encoded files could be processed on PHP versions that are equal to and higher than the source Encoder language, i.e. the full backward compatibility is provided. However, there are a few exceptions here:

To confirm the set parameters, click on Create or Apply (depending on whether you’ve created a new environment or adjusted the existing one).

3. In the opened installation window, specify the following details:

расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

Proceed with clicking on Install and wait a minute till this process is completed (you’ll also receive the appropriate email notification).

Now, let’s check that the add-on is up and running properly.

Verification with ionCube Loader Wizard

For more comprehensive check-up, you can launch a dedicated ionCube Loader Wizard within the appropriate container. It will test the proper Loader operability and provide you with a guidance in case any issue is detected. This step is optional and does not affect the actual ionCube operability. Thus, if you consider the additional check is needed, follow the instructions below:

1. Upload this archive via the Deployment Manager and initiate its deployment by selecting the destination environment (e.g. encoded-app ). расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

3. When the project is deployed, click Open in browser next to it. расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader
4. To launch the Wizard itself, append loader-wizard.php to the end of the opened tab URL. расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

It will analyze and output the current ionCube add-on status, including the appropriate Loader version and PHP engine it runs at.

That’s it! Finally, let’s consider how to put the Loader add-on into action with the files that require decoding.

Running Encoded Application with ionCube

The application is up and running, so it means the Loader has successfully processed all protected files. расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

At this point, with the required application structure being already deployed inside a container, your ionCube Loader performance can be additionally increased through eliminating from the unrequired files’ processing.

Restricting ionCube Work Area

With default settings, the Loader will examine all the files on a web server for being encoded and process the necessary ones when the appropriate application is launched. In order to accelerate this process and boost decoding performance, it’s a good practice to point Loader to the server location with your encoded files (or directly to the required ones).

Since ionCube Loader represents a PHP extension, its settings can be adjusted within the php.ini configuration file at your application server. To access it, click Config next to the appropriate node and select this file in the File manager panel.
расшифровать ioncube php loader. Смотреть фото расшифровать ioncube php loader. Смотреть картинку расшифровать ioncube php loader. Картинка про расшифровать ioncube php loader. Фото расшифровать ioncube php loader

At the very end of the opened file, specify the ioncube.loader.encoded_paths directive with a path to the required destination directory or files as its value, e.g.:

Refer to the Loader User Guide for more information on how to define the required ionCube work area.

Do not forget to Save the changes and be sure your data is safe now.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *