Я использую Haxe для генерации PHP-кода. (Это означает, что вы пишете код на языке Haxe и получаете кучу php-файлов после компиляции.) Сегодня клиент сказал мне, что ему нужна новая функция в старом проекте, сделанном с Haxe. Он также сказал мне, что он изменил некоторые мелочи кода на свои нужды. Теперь я сначала перенес свои изменения в свой код Haxe, а затем добавлю новую функцию, потому что в противном случае его изменения будут перезаписаны при следующем компиляции проекта.
Чтобы это не повторилось, я ищу какую-то программу, которая минимизирует / обфускает код PHP. Цель состоит в том, чтобы сделать код нечитаемым / нередактируемым, насколько это возможно.
Идеальный инструмент будет работать под Linux и может обрабатывать целые папки и все, что содержит файлы.
У кого-нибудь есть предложения?
Я согласен с комментарием, что вы делаете очень слабо, но через 10 лет в этом бизнесе я могу засвидетельствовать одно: половина кода, который вы получаете, настолько запутанна, что его можно было бы минимизировать, и действительно функции / var names так часто полностью произвольны, я редактировал мини-js, и это было не намного сложнее, чем какой-то неминифицированный код.
Я не мог найти такой скрипт / программу, скорее всего, потому что это отнюдь не против духа PHP, а чуть-чуть, но тем не менее.
Во-первых: Php не является чувствительным к пробелу, поэтому первый шаг – удалить все символы новой строки и пробелы вне строки.
Это затруднило бы общение с средним мастером, промежуточный программист просто найдет и заменит все: {} с помощью $ 1 \ n или что-то в этом роде.
Следующим шагом будет get_defined_functions и сохранить этот массив («пользовательский» ключ в возвращаемом массиве), вам нужно будет включить все файлы для этого.
Если это код оо, вам также понадобятся get_defined_classes. Сохраните этот массив.
По сути, вам нужно получить переменные, методы и экземпляры классов, вам нужно будет создать экземпляр класса и get_object_vars, и вы можете сориентироваться и увидеть, что вы можете получить много другой информации, например, константы и классы vars и т. Д. ,
Затем вы берете эти списки, просматриваете их, создаете уникальное имя для каждой вещи, а затем preg_replace или str_replace, что во всех файлах.
Убедитесь, что вы делаете это на тестовой копии, и посмотрите, какие ошибки вы получите.
Хотя, чтобы быть ясным, в аду есть особое место, предназначенное для людей, которые запутываются для обфускации.
Проверьте: get_defined_functions get_declared_classes и просто следуйте ссылкам, чтобы узнать, что вы можете сделать.
Почему бы не использовать php buid в функции php_strip_whitespace ()
string php_strip_whitespace ( string $filename )
Возвращает исходный код PHP в имени файла с комментариями PHP и удалением пробела. Это может быть полезно для определения количества фактического кода в ваших сценариях по сравнению с количеством комментариев. Это похоже на использование php-w из командной строки.
Мы используем Zend Guard для кодирования нашего PHP-кода с определенными клиентами, но, по словам Parrots, вы должны быть уверены, что владеете кодом. Мы только кодируем в определенных ситуациях, и только тогда, когда явное, что мы сохраняем право собственности на код, в противном случае Parrots прав, клиент имеет право его модифицировать.
Я знаю Zendguard , Expressionengine использовал его для шифрования основного кода пробной версии. Вы всегда можете дать это, хотя вам нужно заплатить за это.
Однако, хотя я понимаю разочарование в том, что мне нужно переносить его изменения, я предполагаю, что они купили у вас код? Они имеют право изменять его. Вы просто имеете право заряжать их дополнительно, чтобы переносить свои изменения;) Представьте, если вы перестали работать на них, как они могли нанять кого-то еще, чтобы обновить код?
Наш PHP Obfuscator выполняет именно работу по удалению комментариев, пробелов и идентификаторов скремблирования.
Он работает через полный набор файлов PHP, чтобы гарантировать, что скремблированные символы последовательно скремблируются в этих файлах, обеспечивая правильную работу даже после скремблирования.
EDIT 2013: теперь шифрует строковые литералы, чтобы сделать их нечитаемыми. Работает под Windows и Linux под Wine.
Вы можете попробовать PHP Obfuscator или расширение bcompiler PHP .
Я только что нашел minify-service для PHP. Это действительно выглядит полезно. Они говорят, что обфускация будет доступна в ближайшее время. Надеюсь, это правда 🙂 http://customhost.com.ua/php-minify/