Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Шифровка и дешифровка кода PHP
 
 автор: tokmak   (03.06.2007 в 19:44)   письмо автору
 
 

Здравствуйте, жители форума.
Такой вопросик. Какие сущевствуют методы шифрования кода. Нужно чтобы данную шифровку было очень трудно сломать, т.е например как-нибуть через БД. Напримере Zend'а которым зашифрован Битрикс. Кто что подскажет?

   
 
 автор: Саня   (04.06.2007 в 00:47)   письмо автору
 
   для: 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

   
 
 автор: mr Bin   (04.06.2007 в 01:26)   письмо автору
 
   для: Саня   (04.06.2007 в 00:47)
 

На счёт второго пункта, можно попробовать разместить свой дешифратор на своём сервере и защитить его по максимуму. А в скрипте дать ссылку на дешифратор.

   
 
 автор: Саня   (04.06.2007 в 01:31)   письмо автору
 
   для: mr Bin   (04.06.2007 в 01:26)
 

То-то пользователи скрипта будут рады, когда сервер случайно упадёт! Да и нагрузка получится чрезмерно большая. Проще будет купить Zend Encoder, чем личный кластер и толстый канал.

   
 
 автор: mr Bin   (04.06.2007 в 01:39)   письмо автору
 
   для: Саня   (04.06.2007 в 01:31)
 

Ну это как вариант :) Если подумать, то это почти не пробиваемая защита, в отличие от поломанного зенда.

   
 
 автор: tokmak   (04.06.2007 в 13:16)   письмо автору
 
   для: mr Bin   (04.06.2007 в 01:39)
 

Да вот в том, то и прикол. Создаю страницы шифровки, и саму которую нужно расшифровать. В первой будет указан ключ и т.д. чтобы расшифровывалась 2. Это получится фигня. Может какую нибудь библиотеку создать или подключить готовую. Кроме зенда должны же быть еще способы. Спасиба за советы.

   
 
 автор: sms-send   (04.06.2007 в 13:58)   письмо автору
 
   для: tokmak   (04.06.2007 в 13:16)
 

>Кроме зенда должны же быть еще способы.

Существуют так называемые обфускаторы кода. Они делают код плохочитаемым:
1. Изменяют имена всех переменных, функций, классов на абракадабру).
2. Удаляют комментарии.
3. Удаляют разметку (получается скрипт в одну строку).

Это, конечно, не защита, но редактировать код, в котором одна переменная называется
"$lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllllllllllll llllllllllllllllllllllllll",
а другая
"$lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllllllllllll lllllllllllllllllllllllllll" - очень и очень трудно.


----------
Это что ещё за пробелы?

   
 
 автор: Unkind   (04.06.2007 в 14:18)   письмо автору
 
   для: sms-send   (04.06.2007 в 13:58)
 

Это что ещё за пробелы?
Защита дизайна.

   
 
 автор: tokmak   (04.06.2007 в 14:42)   письмо автору
 
   для: Unkind   (04.06.2007 в 14:18)
 

>Существуют так называемые обфускаторы кода

Хотелось бы по подробнее узнать. Что это такое и с чем его едят.

   
 
 автор: sms-send   (04.06.2007 в 15:06)   письмо автору
 
   для: 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?>

   
 
 автор: Саня   (04.06.2007 в 15:10)   письмо автору
 
   для: sms-send   (04.06.2007 в 13:58)
 

> Существуют так называемые обфускаторы кода
Это и есть, указанный мной второй вариант.

   
 
 автор: sms-send   (04.06.2007 в 15:28)   письмо автору
 
   для: Саня   (04.06.2007 в 15:10)
 

>2. Написать функцию, шифрующую код скрипта

>> Существуют так называемые обфускаторы кода
>Это и есть, указанный мной второй вариант.

Задача обфускатора не зашифровать, а именно запутать код, сделать его трудночитаемым для человека.

   
 
 автор: tokmak   (04.06.2007 в 15:59)   письмо автору
 
   для: sms-send   (04.06.2007 в 15:28)
 

Понятно. Но все же любому взломщику понятно будет чем он скрыт. И легко сделает обратное этому. Может можно создать файл допустим на C++ или Делфи, допустим dll библиотеку. В нее вести метод шифровки и дешифровки. Затем его переменовать в расширение php и все. Потом подключить к файлу странице, что-то наподобие библиотеки. Должно заработать, если правильно сделать. Что скажите? Но только как можно считать информацию с помощью php из закомпилированного файла dll?

   
 
 автор: disable   (04.06.2007 в 16:05)   письмо автору
 
   для: tokmak   (04.06.2007 в 15:59)
 

А вы хотите зашифровать код на своем сервере или при рапространении для невозможности его редактирования?

   
 
 автор: tokmak   (04.06.2007 в 16:08)   письмо автору
 
   для: disable   (04.06.2007 в 16:05)
 

При рапространении для невозможности его редактирования. Чтобы исходник был закрыт для чтение, в общем всякие иероглифы, циферки, но не сам код.

   
 
 автор: sms-send   (04.06.2007 в 16:58)   письмо автору
 
   для: tokmak   (04.06.2007 в 15:59)
 

>Понятно. Но все же любому взломщику понятно будет чем он скрыт.

А он ничем не будет скрыт. Посмотрите пример шифровки выше, код остаётся таким же, меняются только имена переменных и ничего здесь уже назад не изменишь.

   
 
 автор: tokmak   (04.06.2007 в 20:32)   письмо автору
 
   для: sms-send   (04.06.2007 в 16:58)
 

Ну принципи более менее. А все же можно объединить два языка для шифровки? И как?

   
 
 автор: Саня   (05.06.2007 в 00:24)   письмо автору
 
   для: tokmak   (04.06.2007 в 20:32)
 

В принципе, можно написать расширение к php, в котором будет находиться функция расшифровки. Однако мало кто из хостеров позволит подключить её.

   
 
 автор: Саня   (05.06.2007 в 00:21)   письмо автору
 
   для: sms-send   (04.06.2007 в 15:28)
 

> Задача обфускатора не зашифровать, а именно
> запутать код, сделать его трудночитаемым для человека.

Обычно так и поступают - делают код нечитабельным, а потом шифруют и делают eval(undecode($code));

   
 
 автор: tokmak   (05.06.2007 в 12:46)   письмо автору
 
   для: Саня   (05.06.2007 в 00:21)
 

А можно по подробней. Что такое eval(undecode($code)); Что нибудь написано в php manual. Я сейчас гляну. Просто я еще не совсем знаю php.

   
 
 автор: sms-send   (05.06.2007 в 13:00)   письмо автору
 
   для: tokmak   (05.06.2007 в 12:46)
 

>А можно по подробней. Что такое eval(undecode($code)); Что нибудь написано в php manual. Я сейчас гляну. Просто я еще не совсем знаю php.

Функция eval принимает в качестве параметра строку, содержащую PHP код и выполняет этот код. Функция undecode, я так понимаю, должна раскодировать содержимое переменной $code в валидный php-код.

   
 
 автор: Trianon   (05.06.2007 в 22:22)   письмо автору
 
   для: tokmak   (05.06.2007 в 12:46)
 

>Просто я еще не совсем знаю php.

Простите, а зачем Вам скрывать код, в таком случае?

   
 
 автор: Disable   (05.06.2007 в 22:26)   письмо автору
 
   для: tokmak   (05.06.2007 в 12:46)
 

Тут надо поучиться у ява программистов, там это актуально. Для пхп есть только одно приличное решение на основе ЗЕНД, и то оно накладывает требования на хостинг :(

   
 
 автор: Gemorroj   (06.06.2007 в 08:33)   письмо автору
 
   для: Disable   (05.06.2007 в 22:26)
 

Пользуюсь вот этой софтиной. В принципе хватает.

http://www.phplockit.com/

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования