Есть ли обфускатор кода для PHP?

Кто-нибудь использовал хороший обфускатор для PHP? Я пробовал некоторые, но они не подходят для очень больших проектов. Например, они не могут обрабатывать переменные, которые включены в один файл и используются в другом.

Или у вас есть какие-то другие уловки, чтобы остановить распространение вашего кода?

Вы уверены, что вам это нужно?

Cheery 24.10.2008 11:32

@ StevenA.Lowe: остерегайтесь высмеивать PHP. :-)

Marco Demaio 22.03.2013 23:03

ПОПРОБОВАТЬ: github.com/…

user956584 14.04.2013 21:58

Зачем тебе это нужно?

Niet the Dark Absol 06.01.2014 19:27

Еще один действительно хороший, конструктивный вопрос, связанный с программированием, в идеальном формате вопросов и ответов, который закрывается как неконструктивный. Позор за переполнение стека ...

Petr 13.03.2014 20:20

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

Mac 14.05.2015 03:03

Если вы считаете, что это не следует закрывать, проголосуйте за повторное открытие.

Ira Baxter 05.06.2016 16:58

@NiettheDarkAbsol Потому что, если вы создаете часть коммерческого программного обеспечения, вам не обязательно просто отдавать исходный код.

Craig 24.06.2017 01:54

Stackoverflow запускают избалованные дети. Это факт!

Lincoln 08.02.2018 15:47

Этот вопрос нужно снова открыть. Это правильный вопрос

Anu 28.07.2018 05:22

На хорошие вопросы есть правильный ответ. Единственно правильный ответ на вопрос: «Есть ли у вас какие-нибудь другие уловки, чтобы остановить распространение вашего кода?» Да"; это не хороший вопрос. Однако это хорошая подсказка для вики-страницы под названием «Советы и приемы по защите PHP».

lmat - Reinstate Monica 03.10.2018 20:44
github.com/pk-fr/yakpro-po - лучшее, что я нашел
hkguile 26.10.2018 13:12

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

David Spector 14.11.2018 17:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
218
13
185 259
10

Ответы 10

Лучшее, что я видел, это Zend Guard.

SD PHP Obfuscator так же хорош и стоит около 1/5.

Ira Baxter 04.09.2009 08:15

@SalmanPK И причина этого должна быть очевидна?

The Pellmeister 15.05.2012 15:40

@SalmanPK Требуется дополнение к пространству веб-хостинга. Zend Guard, вероятно, тоже. Не уверен, какой из них самый популярный. В любом случае проблема в том, что это сокращает вашу потенциальную аудиторию.

James P. 09.08.2012 06:37

SD PHP Obfuscator преобразует все в нижний регистр. Это будет проблемой, если вы используете фреймворк.

Amil Waduwawara 12.03.2013 09:05

Обратной стороной является то, что это дорого.

Julian 04.04.2014 12:04

@AmilWaduwawara: Какие конкретные сущности, по вашему мнению, отображаются в нижнем регистре? Вы можете показать конкретную проблему с таким нижним регистром?

Ira Baxter 05.06.2016 17:02

@JamesPoulson: Непонятно, относится ли ваше замечание к обфускатору SD PHP. Чтобы быть ясным, это не требует каких-либо дополнений к пространству веб-хостинга.

Ira Baxter 05.06.2016 17:03

@AmilWaduwawara: Разве вы не смотрели бы только на не запутанный код в своей среде IDE? Как это повлияет на фреймворк?

John Dee 17.05.2018 13:49

Zen Guard НАЧИНАЕТСЯ с 600 долларов США В ГОД. Теперь я действительно вдохновлен написать свой собственный.

David Spector 14.11.2018 20:36

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

Музыкальные и кинокомпании еще не совсем смирились с этим, они все еще тратят миллионы на DRM.

В интерпретируемых языках, таких как PHP и Perl, это тривиально. Раньше в Perl было много обфускаторов кода, но потом мы поняли, что их можно тривиально декомпилировать.

perl -MO=Deparse some_program

В PHP есть такие вещи, как DeZender и Показать мой код.

Мой совет? Напишите лицензию и найдите юриста. Единственный другой вариант - не выдавать код и вместо этого запускать размещенную службу.

См. Также запись perlfaq по теме.

Я в основном согласен с вами, но OP попросил рекомендации по продукту, а не лекцию о достоинствах открытого исходного кода.

Eli 03.12.2008 01:50

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

Schwern 07.12.2008 08:50

Я хотел бы повторить комментарий Шверна о невозможности исправлять ошибки и вносить изменения. Если вы планируете продавать / поддерживать свое программное обеспечение, обфускация просто превратит вашу жизнь в ад, поскольку вы будете действительно ограничены в любой отладке, которую вы можете выполнить на живом сервере.

JamShady 26.10.2008 04:11

@JamShady: обфускация не означает, что вы не можете исправлять ошибки или вносить изменения. Если вы тупо запутаете исходный код, выбросите оригинал и настаиваете на сохранении запутанного результата, да, вы ничего не сможете сделать. Хорошие обфускаторы настаивают на том, чтобы вы сохранили свой код и, отображающий скрытый результат; вы можете отлаживать / изменять исходный код, отправлять запутанные патчи своим клиентам и даже диагностировать его проблемы, используя карту для преобразования запутанных жалоб обратно в читаемые. У него нет карты, что делает это безопасным.

Ira Baxter 03.07.2010 20:50

Вопрос: Каким образом, Ответ: Не следует = бесполезно

cmc 15.07.2011 19:30

@cmc Я уверен, что многие люди прямо ответят на этот вопрос, так что я ничего не потеряю, если выберу другой подход. Половина смысла спрашивать эксперта в том, что он знает, когда вы задаете неправильный вопрос, чтобы решить настоящую проблему. Это приложение «5 почему». en.wikipedia.org/wiki/5_Whys Настоящая проблема / вопрос - «как мне запретить людям читать / красть мой PHP-код». Ответ: если вы отправите код, вы не сможете, но вы можете потратить кучу времени и денег, пытаясь обрести ложное чувство безопасности. Разве это не было более полезным, чем список обфускаторов?

Schwern 15.07.2011 22:48

@Schwern: 5 почему - интересное чтение. Однако можно ли получить весь контекст правильно, чтобы найти первопричину из одного вопроса?

cmc 20.07.2011 01:25

@cmc Потому что вопрос ОП так часто задают и всегда получается одинаково. Если «мне нужен обфускатор» сразу не следует за «и я понимаю, что обфускаторы не могут на самом деле остановить умеренно преданного злоумышленника», то я почти уверен, что они этого не продумали. Я мог бы потратить кучу времени, бегая туда-сюда с OP, спрашивая каждого, почему, и получая ожидаемый ответ, просто чтобы быть уверенным ... или я могу сэкономить нам всем кучу времени, сделать логический скачок в этом случае) и переходите до конца.

Schwern 20.07.2011 22:24

@Schwerm: Достаточно честно. Мое скромное мнение о лучшей практике в этой ситуации: Вопрос: Unqualified-How. Ответ: Вот как + Осторожно.

cmc 24.07.2011 13:25

Как вы можете эффективно обеспечить соблюдение своей лицензии, если она у вас есть? Привлечение юристов обычно является крайней мерой. Я полагаю, что обфускация вашего кода для предотвращения нарушения лицензии дешевле и эффективнее, чем необходимость каждый раз платить своему юристу. Кроме того, полагаться на своего адвоката означает, что вам необходимо знать о нарушении. Если я ничего не могу сделать и имею 40% -ное нарушение, лицензию / юриста на 20% -ое нарушение или лицензию / адвокат / запутывание для 5% -ого нарушения, то я, вероятно, выберу последний вариант. Тем не менее, это все не по теме вопроса, заданного OP.

Dan Harper 17.11.2011 04:09

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

devasia2112 24.11.2011 05:08

@Schwerm: Я долго и усердно думал о том, является ли обфускация кода пустой тратой времени, и пришел к выводу, что это не так. Пожалуйста, аннулируйте следующий аргумент, если можете.

cmc 13.12.2011 04:06

@cmc Ошибка: следующий аргумент не найден.

Schwern 17.12.2011 00:03

@Schwerm: Упс, подумал, что удалил этот комментарий, чтобы подумать. Здесь идет аргумент (WIP). Обфускация кода может фактически удалить информацию из кода, заменяя структуры высокого уровня структурами низкого уровня. Это, в сочетании с тем, что намерения программиста уже не всегда очевидны из написанного им кода, может подтолкнуть сложность реверс-инжиниринга из обфусцированного кода до точки, где легче реконструировать, исходя из пользовательского опыта, и в этот момент обфускация будет успешной.

cmc 17.12.2011 04:37

@cmc Я согласен насчет стоимости / выгоды, но, по вашему мнению, обфускация почти не увеличивает стоимость? Компиляторы делают запутывание, о котором вы говорите как о побочном эффекте, и десятилетия работали над атакой на скомпилированный код. У злоумышленников часто есть такие способы атаки, которые не позволяют обфускации. Например, если я хочу знать все операции ввода-вывода, выполняемые программой, я могу использовать такой инструмент, как strace. Есть очень много способов предотвратить запуск вашего кода кем-либо, обычно это включает секретный ключ и / или сетевое рукопожатие. Наконец, как только один человек опубликует, как взломать вашу безопасность, цена исчезнет.

Schwern 17.12.2011 09:16

@Schwerm: Но возьмите собственный алгоритм хеширования; просмотр содержимого функции aKhlqj ('foobar') и выяснение, что это sha-256 с настраиваемыми константами инициализации, займёт больше времени, чем просмотр вызова sha256_variant_with_custom_initialization_constants ('foobar'‌). Сколько еще, для кого и стоит ли в таком случае, общего ответа, похоже, нет. В чем-то вроде моей точки зрения: обфускация по своей сути не является пустой тратой времени, только когда вы хотите использовать ее, не думая, что это ярлык для хорошего самочувствия.

cmc 17.12.2011 17:58

@cmc У ОП был конкретный сценарий: они хотели остановить распространение своего кода. Желание обфускации в качестве решения - это красный флаг, связанный с наличием XY проблема. OP хочет X. Они думают, что Y решит эту проблему. Они спрашивают о Y, а не о X. Мы тратим кучу времени на Y, когда это плохое решение для X. Если вы можете выяснить, что такое X, вы можете сэкономить всем много времени и разочарований. В удаленном ответе OP показал, что они находятся на общем сервере. Очень простое решение для их X - получить частный сервер!

Schwern 19.12.2011 10:48

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

Jordan Arseno 27.08.2012 02:01

"просто немного усложняет работу" ... Ага! Вот что происходит.

Josef Sábl 12.11.2013 12:12

Я хочу запутать мою программу безопасности с открытым исходным кодом только для того, чтобы злоумышленникам было сложнее ее использовать. Я намерен сделать общедоступными все свои алгоритмы, но не код. Создавая для злоумышленников предварительное препятствие, я сразу же им намекаю, что с их стороны потребуется много усилий, чтобы сломать эту программу и использовать ее не по назначению.

David Spector 14.11.2018 17:41

@DavidSpector Это может быть намек, который вы пытаетесь дать, но настоящий намек, который вы даете, - это наивность безопасности. Деобфускаторы находятся в свободном доступе. И это не открытый исходный код, если вы предоставляете только обфусцированный исходный код! Почему бы вам не опубликовать ссылку на свой обфусцированный источник здесь или, может быть, где-нибудь вроде Redit, и не посмотреть, насколько он выдержит общественную проверку?

Schwern 14.11.2018 18:52

Schwern или Schwem, я с вами не согласен. Изменение идентификаторов значительно затрудняет понимание смысла кода. Я искал обфускатор по разумной цене и не могу его найти, поэтому я начал создавать свой собственный (я инженер на пенсии). Я опубликую здесь примеры, если считаю, что проект выполнимый. Мне будет очень интересно ваше мнение. И моя программа безопасности не является открытым исходным кодом; другая прога есть. И вы знаете, что алгоритмы хорошей программы безопасности должны быть обнародованы, чтобы убедить пользователей, что они действительно безопасны. Это не то же самое, что вопрос с открытым исходным кодом.

David Spector 15.11.2018 01:21

@DavidSpector Что ж, удачи! Надеюсь, это интересный проект. Дайте нам знать, когда вы закончите запутывание. И да, меня зовут кернинг-вызов. :)

Schwern 15.11.2018 01:47

Попробуйте это: http://www.pipsomania.com/best_php_obfuscator.do

Недавно я написал его на Java, чтобы запутать мои проекты PHP, потому что я не нашел ни одного хорошего и совместимого готового написанного в сети, я решил выложить его в Интернете как saas, чтобы все использовали его бесплатно. Он не меняет имена переменных между разными сценариями для максимальной совместимости, но очень хорошо их запутывает со случайной логикой, в том числе и для каждой инструкции. Струны ... все. Я считаю, что это намного лучше, чем этот глючный codeeclipse, который, кстати, написан на PHP и очень медленный :)

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

shasi kanth 21.01.2011 13:50

Могу вас заверить, что к этому моменту НИКТО не может деобфускировать код, запутанный этим обфускатором.

PatlaDJ 23.01.2011 12:56

[необходима цитата] - доморощенное шифрование - это безопасность через неизвестность, а это вовсе не безопасность.

Chris Baker 20.07.2011 19:50

pipsomania явно заменяет некоторые имена переменных именами, запутанными как $ {GLOBAL [<randomstring>]}, что не сильно отличается от замены этих имен переменных на $ <randomstring>, за исключением того, что это замедляет выполнение кода. Но он не скрывает имена функций, классов или членов. Он добавляет некоторые дополнительные операторы присваивания, но они не кажутся ничем, кроме дополнительных операторов присваивания.

Ira Baxter 31.07.2011 03:09

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_CONSTANT_ENCAPSED_STRING в ..... Строке 1 o_O

devasia2112 24.11.2011 04:52

«Могу вас заверить, что к этому моменту НИКТО не может де-запутать код» Даже PHP? Если PHP может это сделать, то может и кто-то другой. Глядя на пример кода на вашем сайте, где-то у вас будет статус eval, который выгружает код, измените его на эхо, и ваш код будет отображаться.

user70568 28.02.2012 19:44

Нет, это небезопасно. С помощью небольшого количества кода вы можете это изменить. Я не хочу выпускать код для его отмены, потому что это было бы неуважительно по отношению к автору. Но я также хочу предупредить кого-то, что, если они действительно действительно хотят, чтобы их код был защищен этим инструментом, он этого не сделает.

Colin 08.11.2012 04:36

Скотт Герберт: Ты автоматически говоришь, мой друг, почему так? Сначала найдите место в коде, обработанном этим обфускатором, где вы можете сбросить код «эхом», а затем поговорите. А не наоборот.

PatlaDJ 26.11.2012 15:29

@PatlaDJ: действительно, нет необходимости в eval. Просто взглянув на образец кода на вашей веб-странице, я могу прочитать «GlobalLS» и «Timeofstartt» невооруженным глазом. Написание короткого сценария для декодирования этого кода не займет много времени. Я согласен с тем, что в большом проекте простое присвоение случайных имен переменным и изменение отступов - это приличный уровень запутывания, но ваш алгоритм не выглядит так, как будто он выходит за рамки этого.

Martin Argerami 18.03.2013 12:57

ВНИМАНИЕ: этот метод можно тривиально декодировать обратно к исходным именам переменных, см .: lombokcyber.com/en/detools/decode-pipsomania

Zane 22.11.2016 21:45

@PatlaDJ Это хорошо, не могли бы вы прояснить необходимость его использования, например, минимальную версию PHP, любое расширение шифрования, требуется или нет и т. д. И т. Д.?

Rejoanul Alam 24.05.2017 08:16

Мертвая ссылка! «Запрошенный URL /best_php_obfuscator.do не найден на этом сервере».

David Spector 14.11.2018 20:39

См. Наш SD Thicket PHP Обфускатор для обфускатора, который отлично работает с произвольно большими наборами страниц. Он работает в основном путем шифрования имен идентификаторов. В приложениях от скромных до больших это может сделать код чрезвычайно трудным для понимания, в чем и состоит вся цель.

Он не тратит энергию на схемы "eval (decode (закодированныйпрограммный код))", которые делают многие "обфускаторы" PHP [это "кодировщики", а не "обфускаторы"], потому что любой ком может найти этот вызов и сам выполните eval-decode и получите декодированный код.

Он использует синтаксический анализатор для обработки PHP; он сообщит вам, если ваша программа синтаксически неверна. Что еще более важно, он точно знает весь язык; он не потеряется, не запутается и не сломает ваш код (кроме того, что произойдет, если вы запутаете «неправильно», например, не сможете правильно идентифицировать общедоступный API кода).

Да, он идентично запутывает идентификаторы на разных страницах; если бы этого не произошло, результат не сработал бы.

Насколько я могу судить, это EXE, который работает только под Windows? По крайней мере, eval - это файл .exe ...

Craig Jacobs 31.12.2014 22:24

Файл eval - это установщик на основе .exe. Сложная правда заключается в том, что установленный продукт обычно запускается из сценария .cmd, потому что под ним находится язык параллельного программирования, но вы никогда этого не увидите. Он был разработан в первую очередь как продукт для Windows; однако, если вы установите его в Linux с Wine, он будет работать со сценариями .sh, установленными вместе с ним, как если бы это был родной инструмент Linux. Если вы используете часть графического интерфейса пользователя (необязательно, большинство людей хотят запускать ее как сценарий в процессе производственной сборки), она использует родную Java в Windows и родную Java в Linux.

Ira Baxter 31.12.2014 22:52

Правда ли, что Thicket требует надстройки на место хостинга? Если да, то как это установить на виртуальном хостинге?

Stephen Adelakun 27.04.2016 19:05

@StephenAdelakun: Thicket не требует изменений на сервере. Загрузите его и проверьте документацию.

Ira Baxter 28.04.2016 05:21

Чаще всего стоит 200 долларов, и, судя по их веб-сайту, я не вижу преимуществ перед бесплатной программой затемнения, которая стоила бы этой стоимости. Я независимый инженер-программист и не могу позволить себе такие расходы.

David Spector 14.11.2018 17:45

@DavidSpector: даже не попробовав, вы можете не понять, почему это надежный инструмент для работы с небольшими и большими веб-сайтами. Вы можете скачать и попробовать это бесплатно.

Ira Baxter 14.11.2018 19:15

@Ira Baxter: Я полагаю, что по этой цене это надежно и полно. Однако, если мне нужно, я могу потратить несколько дней на то, чтобы написать программу для синтаксического анализа PHP, чтобы переназначить имена функций и переменных и еще немного очевидных вещей, и это является основой для очень хорошей обфускации. Тогда, может быть, я стану вашим конкурентом по цене значительно ниже ваших смехотворных 200 долларов.

David Spector 14.11.2018 20:33

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

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

Если ваш код «отличный», взломщики приложат все усилия, чтобы распространить его, независимо от того, запутан он или нет. Если никто не знает / не заботится о вашем коде, они, вероятно, тоже не будут.

Неквалифицированный? На основании каких доказательств? Я их пишу. Проверьте мою биографию, прежде чем делать радикальные обобщения. semanticdesigns.com/Company/People/idbaxter

Ira Baxter 11.05.2010 04:29

@Ira: Мое заявление все еще в силе. Самый запутанный код можно взломать за считанные минуты. Я специально имел в виду, что люди самый, которые этим занимаются, неквалифицированы, а не все. Первое, что пришло в голову, это Ioncube, и, конечно же, в нем была опубликована уязвимость: osvdb.org/show/osvdb/41708. С другой стороны, вы, вероятно, могли частично обвинить в этом неясные требования безопасности PHP.

L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 11.05.2010 06:16

Хорошо, вы предлагаете людям не использовать плохие продукты или продукты, разработанные неквалифицированными людьми. С этим трудно не согласиться.

Ira Baxter 03.07.2010 20:47

Нет, я предполагаю, что обфускация вредна, потому что она снижает мою уверенность в том, что программа, которую я использую, работает, и значительно увеличивает вероятность появления уязвимостей в системе безопасности; не то, чего нам нужно больше в сегодняшних системах. Я действительно сомневаюсь, что прибыль компании во многом зависит от того, используют ли они обфускацию или нет.

L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 02.10.2011 20:25

Обфускация, если она выполняется с помощью надежного инструмента, ничего не меняет в надежности программы. Двоичная компиляция - это своего рода крайняя запутанность, и все же я предполагаю, что вы уверены, что движок PHP Zend надежен. (Обфускация или компиляция, выполненные с использованием плохих инструментов, не должны учитываться).

Ira Baxter 02.10.2011 23:12

Как у обфускатора не должно быть ошибок? Если такой инструмент существует, процесс деобфускации был бы тривиальным. Большинство обфускаторов, которые я видел, полностью меняют семантику приложения, а также вводят произвольные ограничения. Как можно даже запутать PHP, если язык не указан, а для недокументированных / встроенных функций языка библиотеки существуют всевозможные коды? Мне трудно даже представить, как можно выполнить альфа-преобразование в PHP, не испортив пользовательский код и не ограничивая тем или иным образом их действия.

L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 06.10.2011 05:53

Кстати, «двоичная компиляция - это своего рода крайняя обфускация». Совершенно верно. Например, единственная рационализация байт-кода JVM - обфускация, они могли бы легко разработать архитектуру, которая позволяет конечным пользователям автоматически компилировать код из исходного кода и кэшировать, или иметь постепенно оптимизируемый кеш скомпилированного кода со временем и т. д. имеют бессмысленные проблемы, вызванные несовместимостью байт-кода с предлагаемыми функциями, Dalvik и т. д.

L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 06.10.2011 05:57

«Как можно запутать PHP, если язык не указан ...?» Если вы собираетесь задать этот вопрос, как вы можете запустить любую программу PHP независимо от того, запутана она или нет? В этом случае проблема не в обфускации, поэтому не стоит вешать эту проблему на обфускацию. Думаете вы так или нет, но многие (например, FaceBook) считают, что PHP достаточно хорошо определен. И если это так, то вы можете достаточно хорошо определить обфускатор.

Ira Baxter 06.10.2011 08:40

МОЙ БОГ. В основном я согласен со всеми сторонами. Обфусцированный код может быть легко деобфусцирован, но только если вы знаете, что он запутан, и знаете, что делать, чтобы его деобфускировать. Обычно я даже не думаю о том, чтобы запутать мою работу, но считаю, что вы работаете над проектом для клиента, который не хочет платить «дополнительную лицензию», но все же хочет владеть исходным кодом. Таким образом, я рассмотрю возможность обфускации этого кода - клиент будет владеть им, но не сможет повторно использовать / понять / прочитать его. И если этот клиент не понимает программирования, он вряд ли сможет понять, что этот код «просто» запутан ... [следующий комментарий]

shadyyx 22.11.2011 20:19

Это также можно использовать в ситуации, когда я хочу, чтобы клиент запрашивал у меня какие-либо изменения, новые функции и т. д., Не спрашивая третью сторону. [ястреб]

shadyyx 22.11.2011 20:22

любой, у кого есть половина мозга, знает, что php испытывает трудности (читай «несуществующий») на реальном рынке корпоративного программного обеспечения, потому что он не запутан на сайте asp.net. Мне так надоело, что слабоумные евангелисты говорят что-то еще. (и да, это и есть умышленное невежество). Открытый исходный код был выпущен слишком долго, его пробовали и слишком часто находили желательным, чтобы не было другого вывода, кроме этого: хобби? Открытый источник. Работа? Зашифровать. Только дураки / идиоты / люди, которые живут в пузыре / имеют богатого отца, могут когда-либо когда-либо думать иначе.

conners 17.03.2012 20:58

Этот комментарий мне почти непонятен, но, похоже, он подразумевает, что нет смысла продавать программное обеспечение с открытым исходным кодом или программное обеспечение, основанное на программном обеспечении с открытым исходным кодом. На случай, если вы не заметили, Java - это «корпоративная», с открытым исходным кодом, и такая же успешная, как и .NET. моя компания зарабатывает миллионы долларов, и нам никогда не приходилось использовать обфускацию. Спросите себя: что хорошего в продаже программного обеспечения, если вы не можете его поддерживать / улучшать (например, вы просто взломали чужое программное обеспечение и перепродали его)?

L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳ 31.03.2012 04:32

Думаю, Лонгпок прав. В некоторых случаях обфускация не подходит, а в некоторых случаях это так.

Julian 31.03.2014 16:09

Ничего не будет идеальным. Если вы просто хотите, чтобы что-то остановило непрограммистов, вот небольшой сценарий, который я написал, вы можете использовать:

<?php
$infile=$_SERVER['argv'][1];
$outfile=$_SERVER['argv'][2];
if (!$infile || !$outfile) {
    die("Usage: php {$_SERVER['argv'][0]} <input file> <output file>\n");
}
echo "Processing $infile to $outfile\n";
$data = "ob_end_clean();?>";
$data.=php_strip_whitespace($infile);
// compress data
$data=gzcompress($data,9);
// encode in base64
$data=base64_encode($data);
// generate output text
$out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>';
// write output text
file_put_contents($outfile,$out);

Потрясающий? На каждой странице есть полное решение для получения исходного кода: запустите "gzuncompress (base64_decode ($ a))". Да, это остановит непрограммистов. Но тогда исходный исходный код остановит непрограммистов, кому для этого нужна кодировка? Единственный человек, который будет смотреть на это, намереваясь перепроектировать это, является - программист PHP.

Ira Baxter 10.08.2013 18:55

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

Asad kamran 18.11.2015 19:24

Для меня это очень полезный ответ. Меня интересует только то, чтобы пользователь не мог легко открыть мой "database.php" в блокноте и увидеть мое имя пользователя и пароль к базе данных.

TimH - Codidact 16.12.2015 03:26

Вы можете попробовать Защита PHP, бесплатный обфускатор PHP для обфускации вашего кода PHP. Он очень красивый, простой в использовании и к тому же бесплатный.Обновлено: эта служба больше не работает.

Что касается того, что другие писали здесь об отказе от обфускации, потому что ее можно сломать и т. д.:
У меня есть только одно, что им ответить - не запирайте дверь дома, потому что любой может взломать ваш замок. Это именно тот случай, обфускация не предназначена для предотвращения 100% кражи кода. Нужно только сделать это трудоемкой задачей, так что будет дешевле заплатить оригинальному кодеру. Надеюсь это поможет.

+1 за указание на тот факт, что запутывание делает его сложнее, а не невозможным.

Ashkan Kh. Nazary 27.09.2011 18:19

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

xorinzor 24.07.2012 23:17

Пробовал, но не понравилось. Он только изменяет имена переменных, но не удаляет комментарии ..

Stefano 13.09.2012 10:45

Я помню, как эта программа очищала весь мой жесткий диск. Никогда не выбирайте источник вроде d: \ :)

user956584 25.10.2012 08:09

@Schwern, оставь дверь незапертой, а затем найми Коломбо и действительно хорошего юриста, чтобы они прикрылись;)

David Newcomb 09.01.2013 16:00

Php Protect - плохая программа. Он показывает некоторые ошибки.

kodmanyagha 13.11.2015 14:53

@ Дэвид Ньюкомб - Кто захочет платить хорошему адвокату, если можно просто запереть дверь?

azoundria 07.06.2017 23:49

PHP Protect не скрывает имена функций. Поскольку он удаляет комментарии вместо того, чтобы заменять их бессмысленным текстом, результат не очень сложно понять. Похоже, он не делает ничего, кроме удаления комментариев и использования бессмысленных имен переменных и констант. И утверждает, что он «безупречный». ДОБАВЛЕНО: на их странице контактов используется нефункционирующая CAPTCHA, поэтому они не могут получать отчеты о проблемах.

David Spector 14.11.2018 21:20

Не нажимайте на ссылку, теперь она ведет на фишинговый сайт. Я предполагаю, что домен выкупили ...

Pavel Lebedeff 13.03.2019 14:36

Я не уверен, что вы можете пометить обфускацию интерпретируемого языка как бессмысленную (я не могу добавить комментарий к сообщению Шверна, поэтому здесь новая запись).

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

Я работаю в консалтинговой компании, которая разрабатывает большой и довольно сложный сайт на основе PHP. Проект будет размещен на сервере клиента, на котором размещены другие сайты, разработанные другими консультационными агентствами. Технически любой код, который мы пишем, принадлежит клиенту, поэтому мы не можем лицензировать его. Однако любая другая консалтинговая компания (конкурент), имеющая доступ к серверу, может скопировать наш код без предварительного разрешения клиента. Таким образом, у нас есть настоящая причина для обфускации - приложить усилия, необходимые для понимания конкурентом нашего кода, а не усилия по созданию копии нашей работы с нуля.

Использование SourceGuardian - это хорошо, поскольку он поставляется с классным и простым в использовании графическим интерфейсом.

Но имейте в виду:

Обратите внимание на довольно забавные условия лицензирования.

  • Вам разрешено запускать только 1 на машину - пока это приемлемо
  • Если вы хотите запустить интерфейс командной строки на другом компьютере, скажите свой веб-сервер ВАМ НУЖНА ДРУГАЯ ЛИЦЕНЗИЯ (да, это забавно, и я слышу, как вы смеетесь).

Мне это кажется нормальным! 2 машины = 2 лицензии! Обычно люди кодируют все это на одной машине, а затем загружают на другую.

David Newcomb 09.01.2013 15:56

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

Herr 09.01.2013 21:41

TL; DR хорошая защита, тупые условия лицензирования.

Herr 09.01.2013 21:42

Должна быть 1 лицензия на пользователя, а не на машину.

beppe9000 20.01.2015 18:08

@ beppe9000 Полностью согласен!

Herr 21.01.2015 00:21

Thicket ™ Obfuscator для PHP

The PHP Obfuscator tool scrambles PHP source code to make it very difficult to understand or reverse-engineer (example). This provides significant protection for source code intellectual property that must be hosted on a website or shipped to a customer. It is a member of SD's family of Source Code Obfuscators.

TrueBug.com недоступен. Я знаю, что публикую комментарий спустя более трех лет, но не могли бы вы помочь с новым URL-адресом trueBug, если таковой имеется?

Stephen Adelakun 08.03.2016 13:51

@StephenAdelakun Вам нужен только TrueBug? Используйте это: Обфускатор TruBug PHP.

Praveen Kumar Purushothaman 08.03.2016 14:01

Извините, ссылка не работает. Или я что-то упускаю?

Stephen Adelakun 09.03.2016 02:02

@StephenAdelakun Только что проверил, работает.

Praveen Kumar Purushothaman 09.03.2016 13:18

Да, ссылка работает, но ничего не могу скачать. Просто ссылки и ссылки ... по кругу.

Stephen Adelakun 14.03.2016 01:41

@StephenAdelakun Почему только это? :( В любом случае это мертвое программное обеспечение. Теперь есть лучшие и классные, не так ли?

Praveen Kumar Purushothaman 14.03.2016 01:54

Мне очень нравится иметь отличный PHP-обфускатор в бесплатной или премиальной версии. Мне нужно только быть полностью уверенным в качестве, прежде чем платить. И мне нужен наставник, авторитет, чтобы принять это решение. Вот почему я здесь, ищу.

Stephen Adelakun 14.03.2016 02:05

@StephenAdelakun Тогда дай мне день. Я найду для вас лучший и подарю вам бесплатно. :)

Praveen Kumar Purushothaman 14.03.2016 08:50

Привет @Praveen, я ждал несколько недель. Я ищу в другом месте? Я знаю, что вы можете быть заняты, но можете ли вы втиснуть меня в свою программу?

Stephen Adelakun 06.04.2016 16:21

Не каждый может позволить себе 200 долларов за инструмент, который дает только ложные объяснения, почему он лучше бесплатной программы затемнения.

David Spector 14.11.2018 17:47

@DavidSpector Извини, дружище, не могу найти ничего отличного с открытым исходным кодом! :(

Praveen Kumar Purushothaman 14.11.2018 20:55

@StephenAdelakun Извини, дружище, не могу найти ничего отличного с открытым исходным кодом! :(

Praveen Kumar Purushothaman 14.11.2018 20:55

Хорошо, я начал писать свою. Я объявлю об этом здесь, если найду проект выполнимым.

David Spector 15.11.2018 00:41

@DavidSpector Было бы здорово !!! Я тоже жду. Я могу помочь, если вам нужно ... :)

Praveen Kumar Purushothaman 15.11.2018 01:48

Другие вопросы по теме