Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: PHP UnReader - Обфускатор PHP-кода
PHP UnReader позволяет использовать 6 независимых методов обфускаци:
1. Удаление комментариев, переводов строк и лишних пробелов.
2. Замена всех кириллических символов HTML-сущностями в кодировке windows-1251. Этот метод не следует использовать, если PHP код генерирует код JavaScript, который оперирует кириллическими символами.
3. Замена содержимого всех кавычек последовательностями кодов символов (...chr(224).chr(225)...). Этот метод рекомендуется использовать всегда - один он заметно снижает мнемонические характеристики кода.
4. Кодирование имён переменных.
5. Кодирование названий функций.
6. Кодирование названий классов.
PHP UnReader позволяет провести обфускацию, используя один или несколько алгоритмов одновременно.
Можно отключить кодирование имён конкретных переменных, функций, классов. Также можно отключить кодирование отдельных файлов проекта.
Система реализован в виде PHP-скрипта. Его легко установить на локальном или удалённом сервере.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Отлично, а как быть с быстродействием?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
V.Terentev
Отправлено: 18 Января, 2008 - 12:01:33
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Вы наверное говорите про chr(224)? Проведём тест:
1. Обфускация своего же кода, системой с неизменённым исходником: 2.36 сек.
2. Обфускация своего же кода, системой с обфусцированным исходником: 2.51 сек.
Видно, что заметного уменьшения быстродействия просто нет.
valenok
Отправлено: 18 Января, 2008 - 16:40:50
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Только скрипт поддаётся дешифровке легко.
Если у вас украли скрипты с сервера - то вы пролетели, и будт они обфусцированными
или нет.
Просто и вам потом с таким кодом больше головной боли.
----- Truly yours, Sasha.
EuGen
Отправлено: 18 Января, 2008 - 17:07:27
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Да, похоже на "сложную" задачу превращения 0 в sin(sqrt(16))*sin(sqr(2))+cos(sqrt(sqrt(256)))*cos(4*cos(0))
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
V.Terentev
Отправлено: 18 Января, 2008 - 19:38:49
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Цитата:
Только скрипт поддаётся дешифровке легко
Вы пробовали "дешифровать" скрипт хотябы в 5000 строк? Не думаю, что это легко.
Цитата:
Просто и вам потом с таким кодом больше головной боли
Какой именно боли? Скрипт ничем не отличается от исходного с точки зрения функциональности. Да и речь здесь идёт скорее не о краже, а о защите продуктов, которые продаются.
Цитата:
Да, похоже на "сложную" задачу превращения 0 в sin(sqrt(16))*sin(sqr(2))+cos(sqrt(sqrt(256)))*cos(4*cos(0))
Задача в том, чтобы время понимания алгоритма работы скрипта сделать сравнимым с временем разработки скрипта с нуля.
valenok
Отправлено: 18 Января, 2008 - 21:17:32
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Вы пробовали "дешифровать" скрипт хотябы в 5000 строк? Не думаю, что это легко.
Я уже не пробую писать скрипты в 5000 строк =)
Да и потом дешифровывать руками точно никто не будет.
Цитата:
Просто и вам потом с таким кодом больше головной боли
Я к тому что каждый скрипт придётся прогонять через вот это вот и хранить две копии, того что у вас и того что на сервере.
Цитата:
Да и речь здесь идёт скорее не о краже, а о защите продуктов, которые продаются.
Для этого пойдёт ..
----- Truly yours, Sasha.
V.Terentev
Отправлено: 18 Января, 2008 - 22:24:11
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Цитата:
Да и потом дешифровывать руками точно никто не будет
Машинные методы тоже осбо ничего не дадут - понять суть алгоритма будет крайне сложно.
Цитата:
Я к тому что каждый скрипт придётся прогонять через вот это вот и хранить две копии, того что у вас и того что на сервере.
Можно хранить один вариант в непубличной папке, а PHP UnReader будет брать файлы оттуда, обрабатывать и класть в публичную папку. Пускать его при желании можно даже кроном.
Цитата:
Для этого пойдёт
В том основной смысл.
ARTY
Отправлено: 19 Января, 2008 - 22:10:55
Почетный посетитель
Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006
Помог: -2 раз(а)
А чем хуже Zend Guard? Поддерживается на уровне модуля PHP, быстродействие очень хорошее.
valenok
Отправлено: 19 Января, 2008 - 22:45:51
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
zend не везде установлен
и фиг продашь такой скрипт
----- Truly yours, Sasha.
V.Terentev
Отправлено: 20 Января, 2008 - 00:58:37
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Вот valenok попал в самую точку.
Ещё раз о целе классической обфускации: есть некоторый скрипт, который планируется продавать в широкие массы. Скрипт не содержит легко отламываемых ограничений типа $demo_mode = true; , однако содержит некоторый уникальный алгоритм. Необходимо защитить этот алгоритм от понимания человека, который не настолько квалифицирован чтобы быстро создать этот алгоритм самому.
Для решения такой задачи нельзя использовать методы кодирования/обфускации подразумевающие обязательную установку некоторого серверного ПО.
ARTY
Отправлено: 20 Января, 2008 - 16:45:50
Почетный посетитель
Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006
Помог: -2 раз(а)
У 90% хостеров установлен Zend Encoder, поэтому это не проблема
V.Terentev
Отправлено: 20 Января, 2008 - 20:56:20
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
На нескольких десятках сайтов, которые я так или иначе веду ZendOptimizer есть только на нашем выделенном сервере. Хостинги выбирал не я, а клиент/предыдущий администратор. Поэтому, на данном этапе например я не могу использовать Zend-технологии для кодирования собственных скриптов.
Вообще при разработке PHP UnReader одной из основных задачь была задача отказа от любого дополнительного серверного ПО. Это классическая обфускация, а не кодирование.
К томуже есть ещё несколько особенностей. Например, PHP UnReader можно запускать на обфускацию по URL т.е. можно, например, полностью автоматизировать процесс продажи обфусцированного скрипта - приём денег по WebMoney Merchant, запуск обфускатора на сервере, генерация письма с вложением - отправка продукта покупателю.
valenok
Отправлено: 20 Января, 2008 - 22:19:19
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
V.Terentev пишет:
запуск обфускатора на сервере
???
Ещё потом удалять обфусцированный файл и повторя ть вот такое вот с каждым заказом??
Храните уже готовый файл на сервере и всё.
----- Truly yours, Sasha.
V.Terentev
Отправлено: 21 Января, 2008 - 22:15:23
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
>Храните уже готовый файл на сервере и всё
Также автоматом можно вносить некоторый измененя - прошивать владельца, например. Кроме того, повторная генерация меняет набор имён, что делает несовместимыми части скриптов сгенерированных в разное время.
>Ещё потом удалять обфусцированный файл
Зачем его удалять? Он сам заменится при следующей итерации. (Добавление)
Для тех кто хотел проверить свои способности в деобфускации: ТЕСТ. Вот скрипт, обфусцированный [PHP UnReader]: http://www[dot]pilotstudio[dot]ru/download/index[dot]zip - это основная часть многофайлового проекта. Задача: более или менее ПОДРОБНО изложить алгоритм. Кроме того, заметить сколько на это потребовалось времени.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.