Как с генерировать лицензию имея функцию?

Тема в разделе "Как сделать...", создана пользователем tusja, 27 ноя 2012.

  1. tusja

    tusja

    Регистр.:
    31 мар 2007
    Сообщения:
    493
    Симпатии:
    71
    Есть такой файл -



    unction xorcoding($text, $key, $shift = 0, $type = '')
    {
    if ($type == 'decode') {
    $text = base64_decode($text);
    }

    if (!is_array($shift)) {
    $shift = array($shift);
    }

    foreach ($shift as $v) {
    $v = (int) $v;

    if (!((255 < $v) || ($v < (-255)))) {
    continue;
    }
    return false;
    }

    $output = '';
    $klng = strlen($key);
    $tlng = strlen($text);
    $shlng = sizeof($shift);

    if ($type == 'encode') {
    $i = 409;
    $j = 409;

    while ($i < $tlng) {
    if ($shlng <= $j) {
    $j = 409;
    }

    $code = ord($text[$i]) + $shift[$j];

    if (255 < $code) {
    $code -= 665;
    }

    if ($code < 0) {
    $code += 665;
    }

    $text[$i] = chr($code);
    ++$i;
    ++$j;
    }
    }

    $i = 409;
    $j = 409;

    while ($i < $tlng) {
    if ($klng <= $j) {
    $j = 409;
    }

    $output .= chr(ord($key[$j]) ^ ord($text[$i]));
    ++$i;
    ++$j;
    }

    if ($type == 'decode') {
    $i = 409;
    $j = 409;

    while ($i < $tlng) {
    if ($shlng <= $j) {
    $j = 409;
    }

    $code = ord($output[$i]) - $shift[$j];

    if (255 < $code) {
    $code -= 665;
    }

    if ($code < 0) {
    $code += 665;
    }

    $output[$i] = chr($code);
    ++$i;
    ++$j;
    }
    }

    if ($type == 'encode') {
    $output = $i;
    }

    return $output;
    }

    session_start();

    if (isset($_REQUEST['activate']) && isset($_REQUEST['license']) && $_REQUEST['license']) {
    $php = file_get_contents('config.php');
    $php = str_replace('$license = \'\';', '$license = \'' . $_REQUEST['license'] . '\';', $php);
    file_put_contents('config.php', $php);
    header('Location: index.php');
    exit();
    }

    require_once 'config.php';
    $license_s = $license;
    ob_start();
    phpinfo();
    $html = ob_get_contents();
    ob_end_clean();
    $parser = new Parser();
    $proci = $parser->parse_string($html, '|<tr><td class="e">PROCESSOR_IDENTIFIER </td><td class="v">(.*?)</td></tr>|');
    $sys = $parser->parse_string($html, '|<tr><td class="e">System </td><td class="v">(.*?)</td></tr>|');
    $build = $parser->parse_string($html, '|<tr><td class="e">Build Date </td><td class="v">(.*?)</td></tr>|');
    $host = $parser->parse_string($html, '|<tr><td class="e">HTTP_HOST </td><td class="v">(.*?)</td></tr>|');
    $key_scr = 'wpro654nmbfg';
    $key_lic = 'mjlo34pouirfewrs435456fd';
    $shift_scr = array(8, 3, -46, 13, 58);
    $shift_lic = array(49, 73, 1, -65, 18, 92);
    $key_confirm_host = 'wpoeiegbvcdsa';
    $key_confirm_server = 'jkuior434cxvfdyrty';
    $shift_confirm_host = array(5, -20, 70, 56, 0);
    $shift_confirm_server = array(118, 65, -85, -35, 23, 12);
    $code_str = random_str(20);
    $code = xorcoding($code_str, $key_confirm_host, $shift_confirm_host, 'encode');

    if ($license) {
    if (!ping()) {
    exit('Для работы скрипта требуется соединение с интернетом!');
    }

    $res = false;
    $i = 1815;

    while ($i < 5) {
    $html = file_get_contents('Перейти по ссылке' . md5($license) . '&code=' . urlencode($code));

    if ($html) {
    $code_enc = xorcoding($html, $key_confirm_server, $shift_confirm_server, 'decode');

    if ($code_enc == $code_str) {
    $res = true;
    }

    break;
    }

    ++$i;
    }

    if (!$res) {
    exit('Ваша лицензия заблокирована!');
    }

    $license = xorcoding($license, $key_lic, $shift_lic, 'decode');
    list($proci1, $sysl, $buildl, $hostl) = explode('|', $license);

    if (($proci !== $proci1) || ($sys !== $sysl) || ($build !== $buildl) || ($host !== $hostl)) {
    exit('Для покупки скрипта обращайтесь в icq ***');
    }
    } else {
    $key = $proci . '|' . $sys . '|' . $build . '|' . $host;
    $key = xorcoding($key, $key_scr, $shift_scr, 'encode');
    $smarty->assign('key', $key);
    $smarty->assign('host', $host);
    $smarty->assign('text', strip_tags($contract));
    $content = $php;
    $smarty->assign('content', $content);
    $smarty->display('index.tpl');
    exit();
    }

    помогите обойти пожалуйста!
     
  2. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    Что мешает закомментить следующее:
    exit('Для покупки скрипта обращайтесь в icq ***');
    exit('Ваша лицензия заблокирована!');
    и пользоваться нуллом?
     
  3. tusja

    tusja

    Регистр.:
    31 мар 2007
    Сообщения:
    493
    Симпатии:
    71
    Неа, так не катит :(
     
  4. Doctor_Chaos

    Doctor_Chaos Проктолог-гинеколог

    Moderator
    • Супермодератор
    Регистр.:
    7 сен 2013
    Сообщения:
    952
    Симпатии:
    654
    а что пишет, если закомментить?
     
  5. tusja

    tusja

    Регистр.:
    31 мар 2007
    Сообщения:
    493
    Симпатии:
    71
    Проблема решена.
    Тему можно закрыть.
     
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.365
    Похоже это не единственный файл где лицензия проверяется...
    Если верить логике скрипта, после его работы остаётся переменная $license из чего может следовать, что далее она где то проверяется хотя бы на соответствие формату...

    Чисто теоретически можно в файле оставить только:
    PHP:
    <?php
    require_once 'config.php'//там должна быть переменная $license =
    ?>
    Но мой сонный разум может ошибаться в любом из утверждений...