Xcache баг-трекер декомпилятора

Статус
В этой теме нельзя размещать новые ответы.
п.1) Еще раз предлагаю версию класса указывать в самом файле с классом в шапке (чтобы можно было точно указать в какой версии баг обнаружен)
п.2) Прогнал еще раз файлики и ошибка(Object of class Decompiler_DimBox could not be conve
rted to string) уже не появлялась
Но также подвисает на несколько минут обработка некоторых файлов
Для просмотра ссылки Войди или Зарегистрируйся
п.3)
...
Файл декодируется, но в одной из функций беда с именами переменных, в дампе опкода аналогичная ситуация. Или файл обфусцирован так хитро или криво работает дампер опкодов. файл уже после декодера битый, нужен оригинал.
...
Оригинала нету, но есть весь проект(коммерческая crm) зазендены не все файлы, можно определить какие имена функции используются в файлах с "кривыми названиями" (через include подключаются нужные файлы с функциями, а далее по тексту искать имена вызываемых функций).
Похоже на то что обфусцифицирован - все файлы где встречаются функции содержат кривые имена функции и переменных в них.
Но эти имена содержат нетабличные символы, т.е. как-будно имя функции и переменных задано в бинарном виде. Разве PHP или методы обфусцификации позволяют использовать/превратить имена в бинарную строку ?
 
п.1) Еще раз предлагаю версию класса указывать в самом файле с классом в шапке (чтобы можно было точно указать в какой версии баг обнаружен)
1. Указывайте имя архива, загруженного с bitbucket, в нем есть версия. Отдельно вести ченджлог нет времени и особого желания.
2. Сравните размер исходников, на которых подвисает, а на которых нет, сильно различаются?
3. Там файл уже после дезендера и он не работает (php выдает ошибку при запуске), а мне нужен рабочий, пусть даже закодированный

upd: исправлен баг с апострофом ' в строках ("\'","'" и т.п. $r = "aaa ' bbb \' \\\'"; ) Для просмотра ссылки Войди или Зарегистрируйся

upd2: может быть сообщения о багах будем постить в багтрекер Для просмотра ссылки Войди или Зарегистрируйся ?
 
проверил результат по 3 у меня что-то отличается от твоего
Без имени11111-1.jpg
1. Полистам [] - это нормально ?
PHP:
<?php
 
list($bar) = "abcde";
list(, , $bar) = "qwe";
list(, $foo) = "qwe";
list($help) = "qwe";
 
if (2) {
        list(, $bar) = "qwe";
        list($help) = "qwe";
}
 
if (1) {
        ///list($drink, $color) = $info;
        $color = $info[1];
        $drink = $info[0];
}
 
$val = $in[0];
 
///list($drink, $color) = $info;
$color = $info[1];
$drink = $info[0];
 
list($a, $b, $c) = each($var);
list($c) = each($var);
list($q, $w) = array($a, $b);
 
/////list($drink, , $power) = $info2;
$power = $info2[2];
$drink = $info2[0];
 
////list( , , $power,$p2) = $info;
$p2 = $info[3];
$power = $info[2];
 
////list($a[0], $a[1], $a[2]) = $info;
$a[2] = $info[2];
$a[1] = $info[1];
$a[0] = $info[0];
 
list($a, $b, $c) = array("a", "b", "c", "d");
list($c) = each($var);
list(, $c) = each($var);
list($a, $b, $c) = each($var);
 
///////list($foo) = $string;
$foo = $string[0];
 
list($q, $w) = array($a, $b);
list($a, list($b, $c)) = array(
        1,
        array(2, 3)
        );
$b[1] = array(1);
list($$a[1]) = array(1);
 
?>
 
Никак не получается раскрутить проблему с глобалом.
Минимально нерабочий код:
PHP:
<?php
function getPageInfo($r=1) {
global $rubrics;
if (isset($rubrics[$page["id_category"]]["resvar"])) {}
}
?>
Поидее проблема из-за некорректного заполнения массива $T при обработке $opc == XC_FETCH_DIM_R и $opc == XC_FETCH_DIM_IS , но до конца понять логику неполучается. Может у olivok получится?
 
проверил результат по 3 у меня что-то отличается от твоего
Да, что-то я где-то нахимичил после этого и поломал, разберусь
1. Полистам [] - это нормально ?
На данном этапе - нормально, т.к. функционал сохраняется, они не сворачиваются в листы потому, что пишутся в разные переменные в опкоде и никак не выделяется последний член.
Никак не получается раскрутить проблему с глобалом.
У меня получился такой глючный код:
PHP:
<?php
  function getPageInfo($z) {
    global $rubrics;
    // $v = 1;
    $rubrics[$p['q']]['w'];
  }
?>
При этом, он корректно отрабатывается если вставить любую команду между объявлением и использованием $rubiric (например: $v = 1) или же убрать аргументы у функции ($z). Больше пока не успел раскопать, отвлекся на глюк со строками.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху