Таким образом, MrX, получаются 3 варианта для программиста, желающего защитить свой продукт написанный на PHP:
1. Использовать ZendGuard.
2. Использовать другую систему байт-кодирования/раскодирования.
3. Использовать мощную обфускацию.
Отдельно по вариантам:
1.
ZendGuard стоит в 20 раз дороже PHP UnReader. Конечно можно использовать "ломаный" продукт, но это просто несерьёзно - любой продукт, продаваемый официально должен быть разработан и распространяться с применением только лицензионного ПО. И это не только соображения "гражданского сознания" - если/когда Ваш продукт будет продаваться в относительно больших количествах, Вы становитесь заметны для налоговых и прочих органов, перед которыи станет просто необходимо отчитываться. Сэкономленная стоимость ПО не окупит возможных проблем.
Но и это не всё. ZendOptimizer, конечно установлен/устанавливается по требованию на многих хостингах, но это не решает всех проблем:
Например Вы скачали дэмку некоего скрипта, который имеет 10 примерных аналогов. Вы пытаетесь его установить, неудача. Вы конечно можете полезть в документацию, посмотреть что скрипту нужен ZendOptimizer, вспомнить что у Вас на хостинге он есть (или его установят по первому требованию, но возможно через неделю), а на локалхосте, где Вы смотрите демку его нет, можете вспомнить про то, что скрипт нужно закачивать по FTP в байт-режиме, и т.д. Так сделаете Вы, я ещё множество программистов/адинистраторов, НО 60-70% скачают аналог со следующего в выдаче Яндекса сайта и купят его, потомучто с ним ненужно этого всего делать.
Кроме того, байт-код, сам по себе не является обфускацией скрипта. И уж темболее base-64 кодировка. Эти коды специально созданы для быстрого и ВЗАИМООДНОЗНАЧНОГО кодирования/раскодирования. Это вобщемто не "защита" - изначально Zend использовал байт-код для ускорения загрузки скрипта, откуда и пошло название ZendOptimizer. Поэтому о "подводных камных" при "дезендировании" говорить можно только условно - они никак не помешают получить исходный код закодированного скрипта. Говоить о "защите" можно только при использовании обфускатора до байт-кодирования. Однако, большинство встроенных обфускаторов не являются действительно "мощными" и дают довольно слабую защиту.
2.
Так называемые "технологии аналогичные ZendGuard" ещё больше развивают недостатки самомго ZendGuard. В любом случае эти технологии требуют серверного ПО, потомучто в этом и есть идея байт-кодирования.
Есть два варианта:
- Серверная часть требует установки на сервер, как приложение. Такие системы рассатривать вобще нет сысла, никто не поставит её специально для Вас, а хостинга с уже установленной Вы точно не найдёте.
- Так называемый "загрузчик в папке с закодированными скриптами". Это также НЕ "защита", если не применялся обфускатор. Если Вы распространяете скрипт с таким загрузчиком, то получить исходный код будет совсем не сложно. Я уже не говорю ослучаях, когда загрузчик сам накладывает дополнительные системные требования.
Что остаётся (как итог рассуждений):
Байт-код сам по себе НЕ ЯВЛЯЕТСЯ ЗАЩИТОЙ, потомучто создан для взаимооднозначного кодирования/раскодирования. Реальную защиту даст только применение обфускатора. Этот факт подтверждает и то, что в последних версиях ZendGuard обфускатор всёже реализован. НО ZendGuard с возможностью обфускации в 20 раз дороже PHP UnReader, а реальных плюсов в области защиты не даёт.
Это также планируется, но в каждой реализации есть свои плюсы. Например, сейчас можно запускать обфускацию по URL т.е. можно создать пресет со всеми необходимыми настройками (указать там из какой папки брать файлы проекта и куда положить обработанные) и потом запустить на обработку запросив определённый URL.
Так можно, например, автоматизировать процесс продажи скрипта с обфускацией для каждого юзера. Зачем обфусцировать отдельно для каждого юзера:
- набор кодированных имён идентификаторов каждый раз уникальный - части проекта от разных юзеров не будут подходить друг к другу,
- кроме того, перед обфускацией можно прошить какие-то персональные данные пользователя - после обфускации они скроются.
Проблем множество, не говоря о цене ZendGuard. ZendOptimizer установлен не на всех хостингах - это факт. Больше того, в ряде случаев скрипт нужно запускать на хостингах, где нет даже баз данных, не то что ZendOptimizer. С этим приходится сталкиваться распространяя продукт в широкие массы не особо "требовательных" сайтов.
Строго говоря, PHP UnReader нельзя сравнивать с технологиями Zend - классическая обфускация позволяет полностью отказаться от дополнительного серверного ПО, при этом обеспечив защиту алгоритмов, что и является основной идеей.
Конечно есть, но распростанять их ещё труднее - опять же из-за обязательности дополнительного серверного ПО.
Это очень большой вопрос. Преобразование в байт-код и обратно взаимооднозначно, поэтому можно получить фактически оригинальный код. В сети можно найти сотни примеров "дезендированного" кода. При обфускации теряется вся мнемоника кода, добавляется мусор и т.д. вернуть такой код в оригинальный вид просто невозможно, разобраться в нём тоже практически нереально.
Как бы там нибыло, ZendGuard стоит около $600. И обфускацию без "зендирования" он не выполнит.
Просмотрите внимательно трид в этом Источнике - обсуждение закончилось после публикации реального обфусцированного проекта, который так никто и не "дешифровал". Вы сами можете попробовать сделать это.
Zend, точнее ZendEncoder в паре с ZendOptimizer, выполняет совсем другую задачу: ZendEncoder преобразует код в бинарный файл, при этом почти никакой обфускации не производится. После "дезендирования" можно получить совершенно читаемый код.
Кроме того, ZendOptimizer - серверное ПО, которое установлено далеко не везде. Это осложняет продажу скрипта, обработанного ZendEncoder.
После классической обфускации НИКАКОГО дополнительного серверного ПО ненужно.
Там специально нарисован хомяк, чтобы подчеркнуть, тот факт, что это не экпертная система, а аналог скудного интеллекта. Суть в том, что часто ответы всёже адекватны, что уже интересно.
Кстати, Concept, на этот запрос уверенность всего 11% :)
Выбор раздела обусловлен тем, что этот продукт не шутка, а Software, причём не являющийся в прямом смысле автоответчиком - это не рэндом, а результат анализа выдачи поисковиков на заданный вопрос. Основной смысл в том, что, учитывая простоту системы, ответы часто вполне адекватны. Вам так не кажется?
Прямые ссылки для скачивания:
MessagesSender
http://enetcom.pilotstudio.ru/download/enetcom_messagessender_setup.exe
AddressExtractor
http://enetcom.pilotstudio.ru/download/enetcom_addressextractor_setup.exe
ListManager
http://enetcom.pilotstudio.ru/download/enetcom_listmanager_setup.exe
ENetComCenter (общий интерфейс пакета)
http://enetcom.pilotstudio.ru/download/enetcom_center_setup.exe
Обновлён алгоритм http://htmlanalyzer.pilotstudio.ru
Основные преимущества:
1. Поддерживаются шаблоны, т.е. нет необходимости создавать группы однокоренных слов - можно написать "слов*", это эквивалентно группе "слов", "слово", "слова", "словами", ...
2. Полная статистика доступна и для выражений, в которых также поддерживаются шаблоны, т.е. "нескольк* слов*" - эквивалентно "несколько слов", "несколькими словами", ... Выражения могут быть любой длины.
А какие URL Вы вводили, если не секрет? В блоке "Проверка Yandex.ru" есть ссылка "Подробнее: [Ответ Yandex.ru]", она ведёт на страницу, которую анализирует скрипт. На этой странице ссылка отмечена?