Защита исходника

Тема в разделе "Как сделать...", создана пользователем Mongolor, 22 мар 2010.

Статус темы:
Закрыта.
  1. Mongolor

    Mongolor

    Регистр.:
    5 дек 2007
    Сообщения:
    157
    Симпатии:
    29
    Собственно чтобы не ушло творение в паблик, как лучше защитить исходный код?
     
  2. r.serge

    r.serge Создатель

    Регистр.:
    28 дек 2007
    Сообщения:
    39
    Симпатии:
    5
    исходный код на чем писан? пых, перл, шарп... уточните задачу
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Для PHP однозначно ioncube. Его тоже вроде бы взламывают, но долго и муторно, и очень мало кто берется, даже за деньги. А за деньги как правило дешевле у автора купить :)

    Да, еще нюанс: когда будешь защищать, разбей на максимальное кол-во инклудов. Везде, где декодят за деньги, берут фиксированную плату за один декодируемый файл. Одно дело 5 файлов декодировать, и другое - 50. Хоть там в сумме один и тот же код получается, цена будет отличаться на порядок.
     
    t3s нравится это.
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    как вариант добавить кучу файлов с бесполезным кодом (сто раз exit()) :D файлы не инклудятся и ничего не делают только для веса
     
  5. Mongolor

    Mongolor

    Регистр.:
    5 дек 2007
    Сообщения:
    157
    Симпатии:
    29
    А если сначала обфускатор, а потом ioncube?

    Да и количество инклюдов не повлияет на скорость выполнения?
     
  6. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Обфускатор в принципе и сам по себе нормальная защита. Навешивать одно на другое - ну это реально уже параноиком надо быть :)

    Ты пойми, 100% защиты все равно не получится. Есть зашифрованый код, есть алгоримт расшифровки, есть ключ. Все это есть у юзера на руках (без любой из этих компонент код не запустится). Так что в теории все взламываемо. Вопрос только в количестве затраченных усилий, возможно проще будет с нуля написать аналог.

    Единственное, что может в теории дать 100% - это часть кода выполняемая на сервере.
     
    sultan347 и Mongolor нравится это.
  7. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    не подскажешь как это реализовать? простенький пример:
    у юзера:
    $a = 1;
    $b = 2;

    if($c != $a+$b){
    echo "С не равно А+Б"
    }
    тогда как получить переменную $c со своего сервера? можно конешно file_gets_content и установить значение, но это легко взломается + если код будет не ввиде строчки, а ввиде функции?
     
  8. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Немного не понял, что в твоем примере $c, откуда она взялась?

    Давай как пример считать, допустим, факториал от $a

    Вариант только на клиенте:
    PHP:
    function factorial($a) {
       if (
    $a <= 1) return $a;
       else return 
    $a factorial($a-1);
    }
    echo 
    factorial(25);
    Его можно заионкубить, заобфускатить, но в теории он остается взламываемым, т.к. все необходимые вычисления производятся на клиенте, и алгоритм полностью доступен (в каком бы он неудобоваримом виде не был).

    Вариант клиент-сервер (прячем код, вычисляющий факториал, насовсем)
    Клиент:
    PHP:
    echo file_get_contents('http://server.com/factorial.php?a=25');
    Сервер:
    PHP:
    function factorial($a) {
       if (
    $a <= 1) return $a;
       else return 
    $a factorial($a-1);
    }
    echo 
    factorial($_GET['a']);
    Юзер имеет на руках только код клиента, серверный ему никаким образом не предоставляется. Соответственно чтобы "сломать" - надо тупо самому с нуля написать точно такой же код, т.е. фактически самому написать аналогичную программу.
     
    Dj_StelS нравится это.
Статус темы:
Закрыта.