Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2010, 21:22   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
Радость Сделать код не рабочим, если его изменят

Доброго времени суток.
Как реализовать проверку целостности кода или иной способ, чтобы сделать php-код не рабочим если его изменят ? (в рамках одного php-документа)

Цитата:
# don't change any of this code
# Any other changes to the code
# will prevent it from working properly.
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 21.08.2010, 21:33   #2
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

есть вариант. но он не всегда рабочий. получить размер данного файла в байтах. если код изменили - размер файла изменился. условием проверить.
или посчитать кол-во символов в коде и записать как константу. изменили код - поменялось кол-во символов.
ну это всё через if сделать можно
Dimarik вне форума Ответить с цитированием
Старый 22.08.2010, 03:26   #3
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

если исходники доступны, то как ни защищай, а человек шарящий твою защиту "выкусит". есть правда интересные решения, когда кусок кода закладывается в gif-файл и, если проект достаточно массивный, то малоопытный человек может и не понять его назначения... а так, можно и размер файла проверять, и определенную последовательность символов в нем, и создать массивы проверочные, и с md5 поиграться, но все равно при наличии исходников на обход твоей защиты уйдет не больше времени, чем ты потратишь на ее создание.
Все генитальное просто.

Последний раз редактировалось kirosin; 22.08.2010 в 03:29.
kirosin вне форума Ответить с цитированием
Старый 22.08.2010, 07:55   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Я лично для защиты пользуюсь следующим приёмом: удаляю все лишние пробелы, переходы на другую строку и комментарии. В итоге получается код-строка. Т.к. у меня стиль написания кода основан на простейших алгоритмах, то после такого удаления он становиться не читаемым.
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.08.2010, 10:37   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,155
По умолчанию

кажись такой прием называется обструкция или обфукция ..... не помню
ADSoft вне форума Ответить с цитированием
Старый 23.08.2010, 09:46   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от HellMercenariess Посмотреть сообщение
в рамках одного php-документа
Созданную вами проверку в первую очередь и вырежут, поэтому надо сразу решить а так ли это надо? Если да то:
1)В сам скрипт добавить проверку по хеш сумме файла скрипта.
2)Использовать в файле минимум стандартных функций(зачем будет написано ниже).
3)Добавить разноообразный мусор, так чтобы не было с первого взгляда понятно зачем он.
4)Сам код писать как можно более запутанно.
5)Как уже написал Виталий Желтяков, удалить все ненужные пробелы и все переводы строки.
6)Название всех, кроме нужных клиенту, функций и переменных изменить на несемантическую последовательность символов (например на разной длинны последовательности символа "_"), этим же будет скрыта и проверка наличия изменений. Соответственно чем меньше вы используете ф-ий имена, которых нельзя изменить тем более нечитаемый будет код.

Если вам не лень всё это делать, то скорее всего ваш код не изменят... Правда смысл в таких извращениях бывает очень редко, тк если код связан, например с шифрованием, то на его разбор всё-таки потратят время...
Если честно, я даже не могу представить такую ситуацию. Разве что скрыть код от любителей.

Ну или использовать платный Zend Studio, который для оптимизации переводит исходники в транскрипт код, который изменить в редакторе уже не так то просто.
Стрелок-охотник

Последний раз редактировалось mv28jam; 23.08.2010 в 09:51.
mv28jam вне форума Ответить с цитированием
Старый 23.08.2010, 11:14   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

http://www.manhunter.ru/webmaster/22...difikacii.html

Почитайте.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 24.08.2010, 01:57   #8
%$PROregRAMi$t%
Заблокирован
 
Регистрация: 28.05.2010
Сообщений: 65
По умолчанию

можно весь код пхп захешировать md5, и даже если изменить один символ на другой (количество байт неизменяется) - хеш будет менятся.
Сравнение полученного хеша и известного уже на момент создания и тестирования файла скрипта - вбить в условие if.
Но опять же это не для сохранения авторского права.

Последний раз редактировалось %$PROregRAMi$t%; 24.08.2010 в 01:59.
%$PROregRAMi$t% вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принтер будет работать лучше если узнает что его ждет в случае .. HellMercenariess Компьютерное железо 3 09.11.2009 09:59
Модернизировать код, сделать его быстрее Rusl92 Общие вопросы Delphi 5 03.11.2008 19:23
Проверить существует ли путь и создать если его нет hoba PHP 6 29.08.2008 14:40
Как получить изображение, если я знаю его хендл? AidarBik Win Api 4 05.11.2007 15:54
Как изменить свойство объекта, если его имя находится в переменной? Aiden Компоненты Delphi 1 13.09.2007 07:57