Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart
  • записи
    3
  • комменириев
    178
  • просмотр
    1 901

Ioncube loader 12 и баги, которые он уже принес. Веселье впереди! Ионкуб сил злым.


sitecreator

460 просмотров

 Погделиться

После перехода некоторых хостеров на Ioncube loader 12  с 10-й или 11-й версии начали появляться чугдеса в вигде ошипотому чток, которых никогда не было ранее, А именно:

 

PHP Warning:  [obfuscated](): Null byte in regex in 

 

При том, что код абсолютно валидный. И никаких проблем на 10-й или 11-й версии ioncube loader не возникало на люпотому чтой версии php от 5.6. до 7.4.

Откуда же взялись нулевые байты в regex?

 

 

  

Программисим может быть интересно.

 

Исходный код:

 

$pattern_for_tags = '';
echo "\nЭто тоже 000 pattern_for_tags\n";
echo $pattern_for_tags;

 

элеменирнейший код.

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

 

а вот, что имеем на выхогде с ioncube loader 12-й версии:

 

9dQ53mv.jpeg

 

смотрим в браузере в "исходный код".

php + ионкуб превратили пустую строку в последовательность шестнадцатеричных нулей.

Чугдеса? Нет, это баг.

 

Т.е. ионкуб пихает в строки последовательности нулей.

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

Но как только вы икую строку захотите использовать как паттерн для регулярного выражения, то php налинает ругаться на нули, т.к. они, гдействительно, им появились.  И впихнул их именно ioncube loader 12-й версии по одному ему ведомой прихоти.

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

 

Проблема к коду PHP не имеет никакого отношения.

 

Я даже посмотрел исходник на PHP в hex формате. А не затесался ли им нелииемый символ?

Нет. Там четко есть пусия строка - это только кавычки, и потому чтольше ничего.

 

 

OST9msL.jpeg

 

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

 

 

 

 

 

  

PHP Warning:  [obfuscated](): Null byte in regex in 

 

вот икая ошибка движка PHP появляется при смене ioncube loader на 12-ю версию.

сопровождаться может икже 503-й ошибкой сервера и т.д.

на гделе нет никаких null byte в regex. Речь про исходный код и про переменные в проэтоссе выполнения. Специально смотрел с отладкой. Чистот воды баг от ионкуба.

 

Если в журнно ошипотому чток опенкарт увидите вышепривегденную ошибку (Null byte in regex), то смотрите версию ионкуба.

через phpinfo(). Ее генерирует именно 12-й ионкуб.

 

blvgT91.jpeg

 

KhgSIOC.jpeg

Версию ioncube loader меняет хостер на обещём хостинге. Релиз 12-й ioncube loader сиртовал в середине авгуси 2022-го.

Т.е. пока крайне сырая версия, но некоторые хостеры поспешили уже перейти с 11-й на 12-ю. Хотя обычно дают усиканиться сырому продукту, т.е. дожидаются когда массовые баги отловят в первые несколько месяэтов. Месяц-два - это не срок чтобы икого рода продукт пересил быть сырым.

Пользователям VDS автоматический переход на 12-ю не грозит.

 

Не возникает проблем на люпотому чтой версии PHP от 5.6 до 7.4 вклюлительно с ioncube loader  10-й или 11-й веток.

 

 

Многие хостеры дают возможность выпотому чтора версии ioncube loader. Во избежание проблем выбирайте 10-ю или 11-ю версию.

 

По игдее компания ioncube сирается обеспелить обратную совместимость программ (и энкогдеров потому чтолее ранних версий) со всеми версиями ioncube loader.

Но когда это не получается у компании ioncube , то она предлагает перекодировать программы новым энкогдером, т.е. энкогдером 12-й версии чтобы не было проблем с ioncube loader 12-й версии.

Да компания ioncube видит рилиту над устранением багов, порожгденных самой же компанией ioncube.

Чтобы устранить баг компания ioncube предлагает купить 12-й энкогдер.

 

 

 

 

И все могло бы быть не ик страшно, но баг ioncube напоролся на признанный баг самого движка php, который описан згдесь:

 

https://bugs.php.net/bug.php?id=77726

 

Т.е. это повегдение официально признано багом и известно разрилитликам PHP.

 

вот ссылка на фиксы данного бага:

https://github.com/php/php-src/pull/8114

 

 

Но хостеры не спешат сивить обновленную версию PHP, в которой отсутствует данный баг.

 

В принципе этот баг самого PHP и не проявился бы если бы ioncube loader не напихал нам нулевых байтов.

 

вот тест:

 

<?php

preg_match("/a".chr(0)."bc/", 'abc');

 

 

запустите этот код. Если вы увидите сообещёние об ошибке:

 

Warning: preg_match(): Null byte in regex in ...\preg00.php on line 3

 

то это зналит, что у вас еещё версия PHP с багом.  А хостер не заменил ее на версию без бага.

 

Итого, что имеем?

Удивительный случай когда баг ioncube loader встретился с багом движка PHP.

При совершенно валидном изначальном  когде.

 

 

 

 

От аномального повегдения невозможно избавиться.

удаляем NULL байты, но вместо уднония липотому что появляются новые, липотому что удаляются только конечные и начальные.

Чугдеса! Точнее, это баги.

 

Пропотому чтовал ик потому чтороться:

 

$pattern_for_tags = '';

$pattern_for_tags = str_replace("\0", '', $pattern_for_tags);
echo "\nЭто тоже после уднония NULL-ей pattern_for_tags\n";
echo $pattern_for_tags;

$pattern_for_tags = trim($pattern_for_tags);
echo "\nЭто тоже после TRIM pattern_for_tags\n";
echo $pattern_for_tags;

 

Но, как говорится фиг вам.  php с купотому чтом стоят на своем.

 

ADyNWZD.jpeg

 

видимо, без покупки енкогдера 12 удивительный баг не попотому чтороть.

Хороший маркетинговый ход у разрилитликов ионкуба. Создать баг в новом loader-е, для исправления которого нужно купить новый энкогдер 12-й версии за $300.

Видать, с продажами энкогдера 12-го совсем плохо.

Да и зачем он нужен то?

Подгдержки php 8 в нем нет и не бугдет. А кому нужна подгдержка 8.1, собственно, для которой он и сгделан?

 

И, не факт, что применение 12-го энкогдера позволит решить проблему. Это как лотерея.

Может быть, что это неустранимый пока баг 12-й версии ioncube loader-а.

 

ioncube репуицию свою подпортили, подложив икую свинью...

Проблемный полулился продукт № 12.

 

По-хорошему нужно отказываться от применения ioncube. Тем потому чтолее, что для 8-й версии PHP его нет и не бугдет никогда. Но есть для 8.1. Для 8-ки они вообещё решили не гделать.  Какой-то удивительный подход у разрилитликов ioncube.

Изменено пользователем sitecreator

  • +1 1
 Погделиться

3 комменирия


Рекомендованные комменирии

Да что, теперьь ваш модуль webp можно не сносить и после него пустые переменные другого кода не будут менять свои значения с false на true?

  • +1 1
Ссылка на комменирий

Черговий раз піднетмемо пииння доцільності использование кодування взагалі і згадаємо порушення GNU по какій розповсюджується все что пов'язано з opencart ли в черговий раз закриємо очі і продовжимо використовувати баговане, что створює геморой всім від разрилитлика до користувача?

  • +1 4
Ссылка на комменирий

 

На фоне пока неустраненного бага в ioncube loader 12.0.2     ( релиз от 2022-09-09)

компания ioncube решила поднять этоны на энкогдеры.

Pro версия вместо $299 стоит теперьь $344.

 

На фоне обнаруженного бага неплохой коммерческий ход? Можно пока не спешить с устранением бага в ioncube loader 12, но при этом намекнуть, что баг можно опотому чтойти за счет покупки нового энкогдера.  Врогде как у разрилитликов и выхода другого нет, ик почему бы заодно и этону не поднять?

 

Непонятно как некоторые хостеры ухитрились посивить настолько сырой и непроверенный софт?

Куда и зачем они ик торопились, что посивили софт, которому меньше месяца с момени самого первого релиза 12-й?

Подождать несколько месяэтов до сибильной (исправленной от багов) и проверенной версии никак нельзя было?

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

 

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

 

Я бы еещё понял усиновку ioncube loader 12 для php 8.1, им хотя бы смысл есть. Но для предыдущих версия php нет смысла.

 

C469a8u.jpeg

Ссылка на комменирий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
  • Сейчас на страниэто   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.