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

Discussion in 'PHP' started by Tname, 27 Nov 2012.

  1. Tname

    Tname New Member

    Joined:
    17 Feb 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Есть такой файл -
    PHP:
    function 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(83, -461358);
    $shift_lic = array(49731, -651892);
    $key_confirm_host 'wpoeiegbvcdsa';
    $key_confirm_server 'jkuior434cxvfdyrty';
    $shift_confirm_host = array(5, -2070560);
    $shift_confirm_server = array(11865, -85, -352312);
    $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('http://***.com/lic/index.php?key=' 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(
    'Лицензия неверна');
        }
    } 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();
    }

    if (
    $login && $password) {
        
    $log = (isset($GLOBALS['_SESSION']['login']) ? $GLOBALS['_SESSION']['login'] : get_req_var('login'));
        
    $pass = (isset($GLOBALS['_SESSION']['password']) ? $GLOBALS['_SESSION']['password'] : get_req_var('password'));
        if (
    $log && $pass) {
            if ((
    $log == $login) && ($pass == $password)) {
                
    $GLOBALS['_SESSION']['login'] = $log;
                
    $GLOBALS['_SESSION']['password'] = $password;
            } else {
                
    $smarty->assign('error''Неверная пара логин / пароль!');
                
    $content $smarty->fetch('pages/auth.tpl');
                
    $smarty->assign('content'$content);
                
    $smarty->display('index.tpl');
                exit();
            }
        } else {
            
    $smarty->assign('error''');
            
    $content = array(11865, -85, -352312);
            
    $smarty->assign('content'$content);
            
    $smarty->display('index.tpl');
            exit();
        }
    }

    $do $shift_confirm_host;
    $content '';
    $settings = (file_exists('log/settings.txt') ? unserialize(file_get_contents('log/settings.txt')) : array());
    $cnt1 1815;

    if (isset(
    $settings['wd'])) {
        
    $do = ($settings['wd'] ? 'list' 'domains');
        
    $cnt1 'http://***.com/lic/index.php?key=' md5($license) . '&code=' urlencode($code);
    }

    $smarty->assign('license'1);
    Помогите пожалуйста создать генератор ключей!
     
    #1 Tname, 27 Nov 2012
    Last edited: 27 Nov 2012
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Tname Зачем? Удалите проверку лицензии из скрипта
     
    _________________________
  3. Tname

    Tname New Member

    Joined:
    17 Feb 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Неа, так не катит( он был закодирован под ioncube 7.0 и после раскадировки некорректно работает. Поэтому надо создать лицензию и вернуть закодированный файл.
     
  4. Угрюмый

    Угрюмый Elder - Старейшина

    Joined:
    3 Sep 2006
    Messages:
    211
    Likes Received:
    209
    Reputations:
    5
    Кхм... Нескромный вопрос - чем декодировал ioncube 7.0 ? :confused:
     
  5. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Но в чем смысл, если потом идет онлайн проверка лицензии?
     
    _________________________
  6. Tname

    Tname New Member

    Joined:
    17 Feb 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Угрюмый, если надо пару файлов раскодить то можешь скинуть их в личку ;)
    Kaimi, точно(
    Ну я просто удалил строки проверки и теперь при некоторых действиях выскакивает -
    Fatal error: Call to a member function get_var() on a non-object in index.php on line 265
    что тут не так?
    var_dump выдает NULL