Я имею дело с очень неприятным фрагментом стороннего кода в середине установки Magento, и у меня возникли небольшие проблемы с его потоками.Вот сообщение об ошибке, которое я вижу:
Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное ']' в /chroot/home/user/example.com/html/dev4/app/code/local/company/PluginName / Модель / Модуль / Лицензия / Свет / Исполнитель / Reader.php (36): код d eval () (18): код d eval () (1302): код eval () в строке 1
Я определил начало цепочки eval () в Reader.php
, и он находится в строке 36. Значит, эти числа в скобках после этого также являются просто ссылками на строки внутри больших блоков текста?Я склонен верить в это, но я не могу понять это самостоятельно.Если это так, то eval()'d code(1302)
кажется особенно ужасным.D:
Я бы дал больше контекста, но статус лицензии кода не очень ясен, поэтому я могу лишь сказать, что эта цепочка triple-eval () в настоящее время ломает вещи, и что втораяслой этого строится следующим образом:
$s = "$BLOCK_OF_SCRAMBLED_TEXT"
$s2 = '';
for ($i=0;($i+0xB-1)<strlen($s);$i+=11) {
for ($k = 013-1 ; $k > -1 ; --$k) {
$s2 .= $s[$i+$k];
}
}
eval($s2);
Когда вы проливаете этот блок за пределы потока программы Magento, $s2
содержит такие замечательные вещи, как -
if($license->getModule()->getDecode()) {
$source = base64_decode($source);
}
...
list($source) = explode("PERFORMER_CLASS_CREATED",$source,2);
$source .= " */";
ob_start();
eval($source);
ob_end_clean();
Итак: как я могупроследить эту цепочку eval()
до точки кода, который на самом деле вызывает проблемы?