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.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Безвозвратное преобразование PHP кода в абсолютно нечитабильный вид
V.Terentev
Отправлено: 17 Января, 2008 - 23:38:42
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




[http://altseotools.com/index.php?page=php_unreader]

PHP UnReader позволяет использовать 6 независимых методов обфускаци:
1. Удаление комментариев, переводов строк и лишних пробелов.
2. Замена всех кириллических символов HTML-сущностями в кодировке windows-1251. Этот метод не следует использовать, если PHP код генерирует код JavaScript, который оперирует кириллическими символами.
3. Замена содержимого всех кавычек последовательностями кодов символов (...chr(224).chr(225)...). Этот метод рекомендуется использовать всегда - один он заметно снижает мнемонические характеристики кода.
4. Кодирование имён переменных.
5. Кодирование названий функций.
6. Кодирование названий классов.

PHP UnReader позволяет провести обфускацию, используя один или несколько алгоритмов одновременно.

Можно отключить кодирование имён конкретных переменных, функций, классов. Также можно отключить кодирование отдельных файлов проекта.

Система реализован в виде PHP-скрипта. Его легко установить на локальном или удалённом сервере.

Вот пример обработанного кода:
if(strlen($lll111111l1) <= $lll11l11ll1) { if($lll111111l1 != "") $lll1ll1l1l1 = $lll111111l1; else $llllllll1l1 = chr(202).chr(238).chr(228).chr(32).chr(238).chr(242).chr(241).chr(243).chr(242).chr(241).chr(242).chr(226).chr(243).chr(229).chr(242); } else $llllllll1l1 = chr(202).chr(238).chr(228).chr(32).chr(239).chr(240).chr(229).chr(226).chr(251).chr(248).chr(224).chr(229).chr(242).chr(32).$lll11l11ll1.chr(32).chr(241).chr(232).chr(236).chr(226).chr(238).chr(235).chr(238).chr(226); } if($llllllll1l1 == "") { if($lllll1l11ll) { $lll1ll1l1l1 = chr(32).chr(32).chr(32).chr(32).$lll1ll1l1l1.chr(32); $lll1111l111 = strlen($lll1ll1l1l1); $llll1l111ll = false; $lll1l1ll111 = false; $llll1lll11l = false; $lll1llllll1 = false; $lllll11llll = false; $llll1l11ll1 = ""; for($lll11ll11ll = 4; $lll11ll11ll < $lll1111l111 - 1; $lll11ll11ll ++) { if(!$llll1l111ll) { if($lll1ll1l1l1[$lll11ll11ll] == chr(112) && $lll1ll1l1l1[$lll11ll11ll - 1] == chr(104) && $lll1ll1l1l1[$lll11ll11ll - 2] == chr(112) && $lll1ll1l1l1[$lll11ll11ll - 3] == chr(63) && $lll1ll1l1l1[$lll11ll11ll - 4] == chr(60))
 
 Top
EuGen Администратор
Отправлено: 18 Января, 2008 - 11:02:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Отлично, а как быть с быстродействием?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
V.Terentev
Отправлено: 18 Января, 2008 - 12:01:33
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Вы наверное говорите про chr(224)? Проведём тест:
1. Обфускация своего же кода, системой с неизменённым исходником: 2.36 сек.
2. Обфускация своего же кода, системой с обфусцированным исходником: 2.51 сек.
Видно, что заметного уменьшения быстродействия просто нет.
 
 Top
valenok
Отправлено: 18 Января, 2008 - 16:40:50
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Только скрипт поддаётся дешифровке легко.
Если у вас украли скрипты с сервера - то вы пролетели, и будт они обфусцированными
или нет.
Просто и вам потом с таким кодом больше головной боли.


-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 18 Января, 2008 - 17:07:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Да, похоже на "сложную" задачу превращения 0 в sin(sqrt(16))*sin(sqr(2))+cos(sqrt(sqrt(256)))*cos(4*cos(0))


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
V.Terentev
Отправлено: 18 Января, 2008 - 19:38:49
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Цитата:
Только скрипт поддаётся дешифровке легко

Вы пробовали "дешифровать" скрипт хотябы в 5000 строк? Не думаю, что это легко.

Цитата:
Просто и вам потом с таким кодом больше головной боли

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

Цитата:
Да, похоже на "сложную" задачу превращения 0 в sin(sqrt(16))*sin(sqr(2))+cos(sqrt(sqrt(256)))*cos(4*cos(0))

Задача в том, чтобы время понимания алгоритма работы скрипта сделать сравнимым с временем разработки скрипта с нуля.
 
 Top
valenok
Отправлено: 18 Января, 2008 - 21:17:32
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. Вы пробовали "дешифровать" скрипт хотябы в 5000 строк? Не думаю, что это легко.


Я уже не пробую писать скрипты в 5000 строк =)
Да и потом дешифровывать руками точно никто не будет.

Цитата:
Просто и вам потом с таким кодом больше головной боли

Я к тому что каждый скрипт придётся прогонять через вот это вот и хранить две копии, того что у вас и того что на сервере.

Цитата:
Да и речь здесь идёт скорее не о краже, а о защите продуктов, которые продаются.

Для этого пойдёт ..


-----
Truly yours, Sasha.
 
My status
 Top
V.Terentev
Отправлено: 18 Января, 2008 - 22:24:11
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Цитата:
Да и потом дешифровывать руками точно никто не будет

Машинные методы тоже осбо ничего не дадут - понять суть алгоритма будет крайне сложно.

Цитата:
Я к тому что каждый скрипт придётся прогонять через вот это вот и хранить две копии, того что у вас и того что на сервере.

Можно хранить один вариант в непубличной папке, а PHP UnReader будет брать файлы оттуда, обрабатывать и класть в публичную папку. Пускать его при желании можно даже кроном.

Цитата:
Для этого пойдёт

В том основной смысл.
 
 Top
ARTY
Отправлено: 19 Января, 2008 - 22:10:55
Post Id



Почетный посетитель


Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006  


Помог: -2 раз(а)




А чем хуже Zend Guard? Поддерживается на уровне модуля PHP, быстродействие очень хорошее.
 
 Top
valenok
Отправлено: 19 Января, 2008 - 22:45:51
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




zend не везде установлен
и фиг продашь такой скрипт


-----
Truly yours, Sasha.
 
My status
 Top
V.Terentev
Отправлено: 20 Января, 2008 - 00:58:37
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Вот valenok попал в самую точку.

Ещё раз о целе классической обфускации: есть некоторый скрипт, который планируется продавать в широкие массы. Скрипт не содержит легко отламываемых ограничений типа $demo_mode = true; , однако содержит некоторый уникальный алгоритм. Необходимо защитить этот алгоритм от понимания человека, который не настолько квалифицирован чтобы быстро создать этот алгоритм самому.

Для решения такой задачи нельзя использовать методы кодирования/обфускации подразумевающие обязательную установку некоторого серверного ПО.
 
 Top
ARTY
Отправлено: 20 Января, 2008 - 16:45:50
Post Id



Почетный посетитель


Покинул форум
Сообщений всего: 238
Дата рег-ции: Июнь 2006  


Помог: -2 раз(а)




У 90% хостеров установлен Zend Encoder, поэтому это не проблема Улыбка
 
 Top
V.Terentev
Отправлено: 20 Января, 2008 - 20:56:20
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




На нескольких десятках сайтов, которые я так или иначе веду ZendOptimizer есть только на нашем выделенном сервере. Хостинги выбирал не я, а клиент/предыдущий администратор. Поэтому, на данном этапе например я не могу использовать Zend-технологии для кодирования собственных скриптов.

Вообще при разработке PHP UnReader одной из основных задачь была задача отказа от любого дополнительного серверного ПО. Это классическая обфускация, а не кодирование.

К томуже есть ещё несколько особенностей. Например, PHP UnReader можно запускать на обфускацию по URL т.е. можно, например, полностью автоматизировать процесс продажи обфусцированного скрипта - приём денег по WebMoney Merchant, запуск обфускатора на сервере, генерация письма с вложением - отправка продукта покупателю.
 
 Top
valenok
Отправлено: 20 Января, 2008 - 22:19:19
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




V.Terentev пишет:
запуск обфускатора на сервере

???

Ещё потом удалять обфусцированный файл и повторя ть вот такое вот с каждым заказом??
Храните уже готовый файл на сервере и всё.


-----
Truly yours, Sasha.
 
My status
 Top
V.Terentev
Отправлено: 21 Января, 2008 - 22:15:23
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




>Храните уже готовый файл на сервере и всё
Также автоматом можно вносить некоторый измененя - прошивать владельца, например. Кроме того, повторная генерация меняет набор имён, что делает несовместимыми части скриптов сгенерированных в разное время.

>Ещё потом удалять обфусцированный файл
Зачем его удалять? Он сам заменится при следующей итерации.
(Добавление)
Для тех кто хотел проверить свои способности в деобфускации: ТЕСТ. Вот скрипт, обфусцированный [PHP UnReader]: http://www[dot]pilotstudio[dot]ru/download/index[dot]zip - это основная часть многофайлового проекта. Задача: более или менее ПОДРОБНО изложить алгоритм. Кроме того, заметить сколько на это потребовалось времени.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программное обеспечение »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB