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

Статус
В этой теме нельзя размещать новые ответы.

sidxx55

IC10, Zend, SG-PS decoding, encoding
Регистрация
12 Май 2007
Сообщения
355
Реакции
260

case баги (оригинал)
полностью разваливается код, дублируется, вместо break - label
PHP:
switch($Object->getSeverity()) {
                    case E_WARNING: $severity = 'E_WARNING'; break;
                    case E_NOTICE: $severity = 'E_NOTICE'; break;
                    case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
                    case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
                    case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
                    case E_STRICT: $severity = 'E_STRICT'; break;
                    case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
                    case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
                    case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
                }
///also the same error with this code
switch (true) {
                        case $ord_var_c == 0x08:
                            $ascii .= '\b';
                            break;
                        case $ord_var_c == 0x09:
                            $ascii .= '\t';
                            break;
                      case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
                            // characters U-00000000 - U-0000007F (same as ASCII)
                            $ascii .= $var{$c};
                            break;
                        case $ord_var_c == 0x0A:
                            $ascii .= '\n';
                            break;
                }
//
switch(true)
{
case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
// single, escaped unicode character
$utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
  . chr(hexdec(substr($chrs, ($c + 4), 2)));
$utf8 .= $this->utf162utf8($utf16);
$c += 5;
break;
}
печатается только 1 остальные пустые
PHP:
switch($Type) {
                case self::DUMP: // only this was decompiled
                case self::LOG:
                    return $msg->log($Object);
                case self::INFO:
                    return $msg->info($Object);
                case self::WARN:
                }
 

dima2k

Мой дом здесь!
Регистрация
20 Апр 2007
Сообщения
276
Реакции
264
[hide=50]Для просмотра ссылки Войди или Зарегистрируйся - файл визуально раскодируется нормально, но в конце теряется переменная. Файлу нужна лицензия, поэтому прикладываю сразу патченый лоадер, где проверка на лицензию убрана.
Строка 98 раскодированного файла:
Код:
require_once (ROOT_PATH . "libs/browser.class.php");
$detect = ;
$mobi = parse_url(MOBILE_SITE);
2-й баг, в другом уже файле. Строка 209 раскодированного файла:
$proxy_checker = "etcwd() . "/proxy_checker.php";
по идее должно быть $proxy_checker = getcwd() . "/proxy_checker.php";
Для просмотра ссылки Войди или Зарегистрируйся
И там же, видно что не все обратные слеши экранируются, например:
exec("C:\\xampp\php\FExec.exe C:\\xampp\php\php.exe \"" . $proxy_checker . " " . $username . " " . $process_id . " " . $proxy . " 2>&1\"", $results);, хотя в опкодах все слеши заэкранированы верно
 

olivok

Постоялец
Регистрация
13 Ноя 2012
Сообщения
159
Реакции
107
Далеко не все слеши нужно экранировать, только те, которые используются в комбинации со спец-символами (\n,\r, \t, \$ и т.п.), с остальным посмотрю.
 

dima2k

Мой дом здесь!
Регистрация
20 Апр 2007
Сообщения
276
Реакции
264
Далеко не все слеши нужно экранировать, только те, которые используются в комбинации со спец-символами (\n,\r, \t, \$ и т.п.), с остальным посмотрю.
Там как раз используется служебный символ, "обратный слеш" =). Смотрел в опкодах - строка передается "правильная" - а уже сам класс ее "портит"
Код:
32 7 CONCAT t@6 'C:\\xampp\\php\\FExec.exe C:\\xampp\\php\\php.exe "'cv%3 EX:0
 

olivok

Постоялец
Регистрация
13 Ноя 2012
Сообщения
159
Реакции
107
Там как раз используется служебный символ, "обратный слеш" =). Смотрел в опкодах - строка передается "правильная" - а уже сам класс ее "портит"
Код:
32 7 CONCAT t@6 'C:\\xampp\\php\\FExec.exe C:\\xampp\\php\\php.exe "'cv%3 EX:0
Он её не портит, он её оптимизирует =)
Можешь попробовать сделать:
PHP:
<?php
 
echo "C:\\xampp\\php\\FExec.exe C:\\xampp\\php\\php.exe";
echo "C:\\xampp\php\FExec.exe C:\\xampp\php\php.exe";
и найти 2 отличия в выводе
 

sidxx55

IC10, Zend, SG-PS decoding, encoding
Регистрация
12 Май 2007
Сообщения
355
Реакции
260
извлеченный из ионкуб декодера на основе кеша класс декомпилятора, как и предполагалось класс php чуть модифицированный, возможно кто-нить скрестит сее творение с классами топика, или найдет ему применение;)
 

Вложения

  • dumped decompiler.rar
    17 KB · Просмотры: 128

olivok

Постоялец
Регистрация
13 Ноя 2012
Сообщения
159
Реакции
107
возможно кто-нить скрестит сее творение с классами топика
Для просмотра ссылки Войди или Зарегистрируйсянекоторые места с классом из топика, вылез баг со свичами, но для теста можно посмотреть и поправить. Вообще нужно бы поискать тесты, для которых там стоят такие хитрые костыли.
 

Дмитрий Кесаев

aka Zlobniy Babko
Регистрация
10 Май 2007
Сообщения
1.332
Реакции
1.235
Ап по просьбе!!!
Ибо доработки имеются!

Иначе через 2-3 дня под снос!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху