|
|
|
| Здравствуйте, жители форума.
Такой вопросик. Какие сущевствуют методы шифрования кода. Нужно чтобы данную шифровку было очень трудно сломать, т.е например как-нибуть через БД. Напримере Zend'а которым зашифрован Битрикс. Кто что подскажет? | |
|
|
|
|
|
|
|
для: tokmak
(03.06.2007 в 19:44)
| | Тут есть два варианта.
1. Раскошелиться на Zend Encoder (phpcipher, ionCube, codelock, SourceCop и пр.)
2. Написать функцию, шифрующую код скрипта
Первый вариант - был близким к идеалу, пока не появилась программа deZender. Второй - так, баловство, для отпугивания "кул хакеров". А всё из-за того, что функция расшифровки должна быть в исходнике.
Если воспользоваться вторым способом, то тут есть две тонкости.
1. Любой нормальный программист (если ему это надо) вскроет код
2. Нормальных программистов достаточно
http://softtime.ru/forum/read.php?id_forum=1&id_theme=2634
http://softtime.ru/forum/read.php?id_forum=1&id_theme=1290 | |
|
|
|
|
|
|
|
для: Саня
(04.06.2007 в 00:47)
| | На счёт второго пункта, можно попробовать разместить свой дешифратор на своём сервере и защитить его по максимуму. А в скрипте дать ссылку на дешифратор. | |
|
|
|
|
|
|
|
для: mr Bin
(04.06.2007 в 01:26)
| | То-то пользователи скрипта будут рады, когда сервер случайно упадёт! Да и нагрузка получится чрезмерно большая. Проще будет купить Zend Encoder, чем личный кластер и толстый канал. | |
|
|
|
|
|
|
|
для: Саня
(04.06.2007 в 01:31)
| | Ну это как вариант :) Если подумать, то это почти не пробиваемая защита, в отличие от поломанного зенда. | |
|
|
|
|
|
|
|
для: mr Bin
(04.06.2007 в 01:39)
| | Да вот в том, то и прикол. Создаю страницы шифровки, и саму которую нужно расшифровать. В первой будет указан ключ и т.д. чтобы расшифровывалась 2. Это получится фигня. Может какую нибудь библиотеку создать или подключить готовую. Кроме зенда должны же быть еще способы. Спасиба за советы. | |
|
|
|
|
|
|
|
для: tokmak
(04.06.2007 в 13:16)
| | >Кроме зенда должны же быть еще способы.
Существуют так называемые обфускаторы кода. Они делают код плохочитаемым:
1. Изменяют имена всех переменных, функций, классов на абракадабру).
2. Удаляют комментарии.
3. Удаляют разметку (получается скрипт в одну строку).
Это, конечно, не защита, но редактировать код, в котором одна переменная называется
"$lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllllllllllll llllllllllllllllllllllllll",
а другая
"$lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllll" - очень и очень трудно.
----------
Это что ещё за пробелы? | |
|
|
|
|
|
|
|
для: sms-send
(04.06.2007 в 13:58)
| | Это что ещё за пробелы?
Защита дизайна. | |
|
|
|
|
|
|
|
для: Unkind
(04.06.2007 в 14:18)
| | >Существуют так называемые обфускаторы кода
Хотелось бы по подробнее узнать. Что это такое и с чем его едят. | |
|
|
|
|
|
|
|
для: tokmak
(04.06.2007 в 14:42)
| | http://www.phpdefender.com/files/phpdef16.zip
----------
Пример работы
----------
Что было:
<?php
$str1='123456';
$str2=$str1;
$str3=$str2;
$str4=$str3;
$str5=$str4;
$str6=$str5;
$str7=$str6;
$str8=$str7;
$str9=$str8;
$str10=$str9;
$str11=$str10;
$str12=$str11;
echo $str12;
?>
|
----------
Что стало:
<?php $IIIIIIIIIIII='123456'; $IIIIIIIIIIIl=$IIIIIIIIIIII; $IIIIIIIIIII1=$IIIIIIIIIIIl;
$IIIIIIIIIIlI=$IIIIIIIIIII1; $IIIIIIIIIIll=$IIIIIIIIIIlI; $IIIIIIIIIIl1=$IIIIIIIIIIll; $IIIIIIIIII1I=$IIIIIIIIIIl1;
$IIIIIIIIII1l=$IIIIIIIIII1I; $IIIIIIIIII11=$IIIIIIIIII1l; $IIIIIIIIIlII=$IIIIIIIIII11; $IIIIIIIIIlIl=$IIIIIIIIIlII;
$IIIIIIIIIlI1=$IIIIIIIIIlIl; echo $IIIIIIIIIlI1; ?>
|
| |
|
|
|
|
|
|
|
для: sms-send
(04.06.2007 в 13:58)
| | > Существуют так называемые обфускаторы кода
Это и есть, указанный мной второй вариант. | |
|
|
|
|
|
|
|
для: Саня
(04.06.2007 в 15:10)
| | >2. Написать функцию, шифрующую код скрипта
>> Существуют так называемые обфускаторы кода
>Это и есть, указанный мной второй вариант.
Задача обфускатора не зашифровать, а именно запутать код, сделать его трудночитаемым для человека. | |
|
|
|
|
|
|
|
для: sms-send
(04.06.2007 в 15:28)
| | Понятно. Но все же любому взломщику понятно будет чем он скрыт. И легко сделает обратное этому. Может можно создать файл допустим на C++ или Делфи, допустим dll библиотеку. В нее вести метод шифровки и дешифровки. Затем его переменовать в расширение php и все. Потом подключить к файлу странице, что-то наподобие библиотеки. Должно заработать, если правильно сделать. Что скажите? Но только как можно считать информацию с помощью php из закомпилированного файла dll? | |
|
|
|
|
|
|
|
для: tokmak
(04.06.2007 в 15:59)
| | А вы хотите зашифровать код на своем сервере или при рапространении для невозможности его редактирования? | |
|
|
|
|
|
|
|
для: disable
(04.06.2007 в 16:05)
| | При рапространении для невозможности его редактирования. Чтобы исходник был закрыт для чтение, в общем всякие иероглифы, циферки, но не сам код. | |
|
|
|
|
|
|
|
для: tokmak
(04.06.2007 в 15:59)
| | >Понятно. Но все же любому взломщику понятно будет чем он скрыт.
А он ничем не будет скрыт. Посмотрите пример шифровки выше, код остаётся таким же, меняются только имена переменных и ничего здесь уже назад не изменишь. | |
|
|
|
|
|
|
|
для: sms-send
(04.06.2007 в 16:58)
| | Ну принципи более менее. А все же можно объединить два языка для шифровки? И как? | |
|
|
|
|
|
|
|
для: tokmak
(04.06.2007 в 20:32)
| | В принципе, можно написать расширение к php, в котором будет находиться функция расшифровки. Однако мало кто из хостеров позволит подключить её. | |
|
|
|
|
|
|
|
для: sms-send
(04.06.2007 в 15:28)
| | > Задача обфускатора не зашифровать, а именно
> запутать код, сделать его трудночитаемым для человека.
Обычно так и поступают - делают код нечитабельным, а потом шифруют и делают eval(undecode($code)); | |
|
|
|
|
|
|
|
для: Саня
(05.06.2007 в 00:21)
| | А можно по подробней. Что такое eval(undecode($code)); Что нибудь написано в php manual. Я сейчас гляну. Просто я еще не совсем знаю php. | |
|
|
|
|
|
|
|
для: tokmak
(05.06.2007 в 12:46)
| | >А можно по подробней. Что такое eval(undecode($code)); Что нибудь написано в php manual. Я сейчас гляну. Просто я еще не совсем знаю php.
Функция eval принимает в качестве параметра строку, содержащую PHP код и выполняет этот код. Функция undecode, я так понимаю, должна раскодировать содержимое переменной $code в валидный php-код. | |
|
|
|
|
|
|
|
для: tokmak
(05.06.2007 в 12:46)
| | >Просто я еще не совсем знаю php.
Простите, а зачем Вам скрывать код, в таком случае? | |
|
|
|
|
|
|
|
для: tokmak
(05.06.2007 в 12:46)
| | Тут надо поучиться у ява программистов, там это актуально. Для пхп есть только одно приличное решение на основе ЗЕНД, и то оно накладывает требования на хостинг :( | |
|
|
|
|
|
|
|
для: Disable
(05.06.2007 в 22:26)
| | Пользуюсь вот этой софтиной. В принципе хватает.
http://www.phplockit.com/ | |
|
|
|