Что делает этот PHP? Это кодер / декодер?

Я вообще не знаю PHP; это больше вопрос любопытства.

После функции PHP ниже в текстовом файле несколько тысяч символов текста, таких как:

xnEFstUhSNWGSx5zTq4X/AUw/rtism+klrBETWg0xE1uwb49rnRxrgrgY5EEp3Y0uvTcvLqhUFOP
4n7LDLQpQ9UACTyuUjGBKmUScQCYLCP08u06t0K3nWTNiM7Q6bQMk/iZBE+UK1ywbVC1Lzr9OOEK

Эта функция php кодирует случайный текст в php? Можно ли из этого выяснить схему шифрования?

РЕДАКТИРОВАТЬ: Клиент говорит, что он имеет полное право собственности и права на код, разработанный кем-то другим. Как бы это было расшифровано? Требуется ли пароль?

<?php //003ac
if (!extension_loaded('ionCube Loader')) {
    $__oc = strtolower(substr(php_uname(), 0, 3));
    $__ln = 'ioncube_loader_' . $__oc . '_' . substr(phpversion(), 0, 3) . (($__oc == 'win') ? '.dll' : '.so');
    @dl($__ln);
    if (function_exists('_il_exec')) {
        return _il_exec();
    }
    $__ln   = '/ioncube/' . $__ln;
    $__oid  = $__id = realpath(ini_get('extension_dir'));
    $__here = dirname(__FILE__);
    if (strlen($__id) > 1 && $__id[1] == ':') {
        $__id   = str_replace('\\', '/', substr($__id, 2));
        $__here = str_replace('\\', '/', substr($__here, 2));
    }
    $__rd = str_repeat('/..', substr_count($__id, '/')) . $__here . '/';
    $__i  = strlen($__rd);
    while ($__i--) {
        if ($__rd[$__i] == '/') {
            $__lp = substr($__rd, 0, $__i) . $__ln;
            if (file_exists($__oid . $__lp)) {
                $__ln = $__lp;
                break;
            }
        }
    }
    @dl($__ln);
} else {
    die('The file ' . __FILE__ . " is corrupted.\n");
}
if (function_exists('_il_exec')) {
    return _il_exec();
}
echo ('Site error: the file <b>' . __FILE__ . '</b> requires the ionCube 
PHP Loader ' . basename($__ln) . '  to be installed by the site administrator.');
exit(199);
?>
 NotMe01 нояб. 2010 г., 23:03
Если по какой-то причине клиент чувствует, что он больше не может связаться с оригинальным разработчиком (если не считать смерти), чтобы получить не обфусцированную версию, то это будет для меня красным сигналом о потенциальных будущих отношениях с указанным клиентом.
 mpen07 окт. 2010 г., 21:01
похоже, что фрагмент ниже пытается загрузить файл ...... возможно, запустите его тоже ... да, возможно, он пытается декодировать и выполнить этот искаженный текст.
 NotMe01 нояб. 2010 г., 23:01
К вашему сведению - в зависимости от местоположения, клиент может не иметь полных прав на код, если это не было прямо указано в его контракте. В некоторых областях право собственности на код остается за лицом, которое его написало, независимо от того, кто его заказал. Если разработчик запутал код и не предоставил не обфусцированную версию, то он / она, вероятно, почувствовал, что они им владеют. Действовать с осторожностью. Если клиент действительно владеет им, ему следует связаться с оригинальным разработчиком для получения не обфусцированной версии ... без дополнительных затрат.

Ответы на вопрос(5)

Это зашифрованоIoncube, Расширение ionCube будет обрабатывать дешифрование кода. Возможно, его можно будет декодировать самостоятельно, но ознакомьтесь с лицензионным соглашением с разработчиком, поскольку не уверены, что это законно.

Эта часть кода будет проверять только то, установлено ли расширение ionCube на вашем сервере. этоне участвует в расшифровке файла (думаю, не так просто прочитать запутанный код :-)).

 markratledge07 окт. 2010 г., 21:13
Спасибо за вклад. Клиент говорит, что он имеет полное право собственности и права на код, разработанный кем-то другим. Как бы это было расшифровано? С паролем и с пакетом декодера Ioncube?
 Emil Vikström07 окт. 2010 г., 21:59
Попробуйте найти декодер ionCobe. Я слышал о сайтах, делающих аналог для Zend Optimizer, но не знаю об ionCube. Но не рассчитывайте получить что-нибудь полезное из этого, потому что они, вероятно, запутали все переменные и имена функций, даже после того, как вы расшифровали строку. Попробуйте вместо этого получить исходный исходный код или скажите клиенту, что код зашифрован и не может быть изменен без его создания с нуля.
Решение Вопроса

Это практически PHP-кодированный ионный куб или запутанный, если хотите. Ioncube является несвободным механизмом выполнения зашифрованных байт-кода иioncube loader библиотека, которая обрабатывает запутанный код

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

 markratledge17 окт. 2010 г., 19:47
Так много правильных ответов, но этот самый высокий рейтинг.
 Emil Vikström07 окт. 2010 г., 21:07
+1 для несвободных. Сами ionCube (а также Zend Optimizer, другой обфускатор, не имеющий никакого отношения к производительности) говорят, что они бесплатны, но они бесплатны только как «бесплатно», а не как бесплатные программы. Эти продукты рекламируют себя как «бесплатные расширения», чтобы подтолкнуть пользователей к обвинению компаний-хостеров без этих расширений.

Вот код в формате:

<?php
  //003ac
  if (!extension_loaded('ionCube Loader')) {
      $__oc = strtolower(substr(php_uname(), 0, 3));
      $__ln = 'ioncube_loader_' . $__oc . '_' . substr(phpversion(), 0, 3) . (($__oc == 'win') ? '.dll' : '.so');
      @dl($__ln);
      if (function_exists('_il_exec')) {
          return _il_exec();
      }
      $__ln = '/ioncube/' . $__ln;
      $__oid = $__id = realpath(ini_get('extension_dir'));
      $__here = dirname(__FILE__);
      if (strlen($__id) > 1 && $__id[1] == ':') {
          $__id = str_replace('\\', '/', substr($__id, 2));
          $__here = str_replace('\\', '/', substr($__here, 2));
      }
      $__rd = str_repeat('/..', substr_count($__id, '/')) . $__here . '/';
      $__i = strlen($__rd);
      while ($__i--) {
          if ($__rd[$__i] == '/') {
              $__lp = substr($__rd, 0, $__i) . $__ln;
              if (file_exists($__oid . $__lp)) {
                  $__ln = $__lp;
                  break;
              }
          }
      }
      @dl($__ln);
  } else {
      die('The file ' . __FILE__ . " is corrupted.\n");
  }
  if (function_exists('_il_exec')) {
      return _il_exec();
  }
  echo('Site error: the file <b>' . __FILE__ . '</b> requires the ionCube 
PHP Loader ' . basename($__ln) . '  to be installed by the site administrator.');
  exit(199);
?>

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

редактировать: похоже, что вы отформатировали текст, пока я отвечал.

 mpen07 окт. 2010 г., 21:06
Я позволил себе редактировать вопрос, а не публиковать ответ ...
 jps07 окт. 2010 г., 21:08
Просто выполняю свой гражданский долг, хаха.

Да, это для шифрования / дешифрования исходного кода PHP. Вы можете увидеть внизу это относится кIoncube товары.

По данным этого сайта, это кодировщик. Я думаю, что это для запутывания кода.

http://www.ioncube.com/

 chigley07 окт. 2010 г., 21:15
Это лучше, чем запутывание, потому что его нелегко расшифровать, хотя некоторые люди утверждают, что делают это за огромную плату! Конечно, есть и другие функции, такие как ограничение IP / домена, лицензирование, истечение времени и т. Д.
 ircmaxell07 окт. 2010 г., 22:52
Здоровенная плата? Один поиск в Google поднял 15 долларов за один файл и 100 долларов за 10 файлов ... Так что да, это не очень дешево, но я бы не назвал это здоровенным (если у вас не было много файлов для декодирования) ...
 chigley08 окт. 2010 г., 08:15
@ircmaxwell - все стало намного проще! Когда я впервые начал использовать его, было практически невозможно декодировать. Пища для размышлений прямо там! :)

Ваш ответ на вопрос