За последние 24 часа нас посетили 16242 программиста и 1666 роботов. Сейчас ищут 912 программистов ...

Обфускация кода и обратно

Тема в разделе "Прочие вопросы по PHP", создана пользователем enshtein, 2 ноя 2008.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Есть некоторый полезный ))) мне php-код работающий на сервере хостера... Нужно во чтобы то нистало скрыть этот код от глаз хостинг-провайдера но оставить его работающим :)

    Первое что пришло в голову:
    1) Обрабатываем php-код какой-нить функцией - которая на выходе выдает что-то несуразное и непохожее на код ))) и записываем этот поток в файл к примеру (code.txt), главное чтобы можно было обратно вернуть код в том же виде что и был до обфускации - применив для этого какой-нить ключ (пароль)!
    2) далее вызывается скрипт обработчик на сервере - которому передается ключ-пароль, который был использован при обфускации кода например через GET, код преобразуется обратно в соответствии с этим ключом и интерпритируется в eval() - если ключ неверный - то соответственно код не будет правильным

    как такое реализовать может подскажет кто-нить?
    вернее даже - подскажите идею такой функции кодирования и декодирования кода с ключом
     
  2. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Разница между кодом и простой строкой ?

    А если нет то в мануале полно готовых функций (которые фиг взломаешь)
     
  3. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    PHP:
    1. <?php
    2. // код ключа
    3. function getKey($buff) {
    4.     for($i=0; $i<strlen($buff); $i++) {
    5.         $out += ord($buff{$i});
    6.     }
    7.     return $out;
    8. }
    9.  
    10. // функция кодирования
    11. function code($buff, $key) {
    12.     $key = getKey($key);
    13.     for($i=0; $i<strlen($buff); $i++) {
    14.         $out .= chr(ord($buff{$i}) + $key);
    15.     }
    16.     return $out;
    17. }
    18.  
    19. // функция-декодирования
    20. function decode($buff, $key) {
    21.     $key = getKey($key);
    22.     for($i=0; $i<strlen($buff); $i++) {
    23.         $out .= chr(ord($buff{$i}) - $key);
    24.     }
    25.     return $out;
    26. }
    27.  
    28.  
    29. $source = '<?php echo 'Проверка работы кода'; phpinfo(); ?>';
    30.  
    31. $str_code = code($source, '1234');
    32. echo $str_code;  //  :2:ЧФ/-29кс™єё¬ЇєґЄкєЄ«ёјЕкґё®ЄсЧФ:2:3809туЧФ 
    33. echo decode($str_code, '1234'); // <?php echo 'Проверка работы кода'; phpinfo(); ?>
    34. ?>
    где то так... думается
     
  4. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Велосипед... Бегом в мануал...
     
  5. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    enshtein, а имея кодированный код и функцию раскодирования можно узнать ключ?
     
  6. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    хде??? там?? ткните носом... чтоб я тут не велосипедничал :))))

    эээ.... можно конечно.... но не сразу.... ))) покрайне мере мой хостер врятли будет этим заниматся
     
  7. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Если скрипт должен запускать только ты то проще код не хранить на сервере, а вводить непосредственно для запуска, но и в этом случае раскодировка хостером займёт не много времени, в противном случае это и вовсе займёт одну минуту.