Хорошие компиляторы для компиляции скриптов perl/python/php в исполняемые файлы Linux?
Я работаю над проектом, который требует чтения текстовых файлов, извлечения из них данных, а затем создания отчетов (текстовых файлов). Поскольку существует много синтаксического анализа строк, я решил сделать это на Perl, Python или PHP (предпочтение в этом порядке ). Но я не хочу раскрывать исходный код своему клиенту. Есть ли какой-нибудь хороший компилятор для компиляции скриптов perl/python/php в исполняемые файлы Linux?
Я не ищу 100% идеального, но я ищу по крайней мере на 90 % идеальный вариант. Под совершенным я подразумеваю, что компилятору не требуется писать сценарии с ограниченным набором языковых функций.
8 answers
Существует компилятор для perl, называемый perlcc. Я не знаком с perl, но это похоже на то, что вы ищете.
Извините, но на это просто не стоит тратить свое время. Для любого языка, который вы выберете (из перечисленных вами), для любого компилятора/обфускатора, который кто-то выберет, я обещаю вам, что смогу извлечь из него читаемый исходный код (в течение часа, если это Perl; дольше, если это Python или PHP просто потому, что я меньше знаком с реализациями этих языков, не, потому что с этими языками сложнее).
Я думаю, тебе следует взять лучше посмотрите, каковы ваши цели и почему вы хотите работать на клиента, который, как вы предполагаете, априори хочет вас ограбить. И если вы все еще хотите продолжить такую схему, напишите на C или Fortran - конечно, ничего, начинающегося с "P".
Существует 3 варианта шифрования кода Perl:
Используйте PAR для создания исполняемого файла с помощью PAR::Filter::Запутать или PAR::Фильтр::Крипто
Используйте фильтр::Крипто::кРиптоФайл (потребуются некоторые модули, установленные в целевой ОС)
Превратитесь в модуль и зашифруйте в Module::Crypt.
Также вы можете попробовать B::C - он был удален из основного дистрибутива Perl и теперь доступен на CPAN.
До сих пор мы слышали о perlcc и о некоторых фильтрах запутывания. Это может сработать.
Мне очень повезло с PerlApp от ActiveState, который является частью их набора для разработки Perl.
Это хорошо работает, чтобы объединить ваш код и скрыть его. Вы можете попробовать его бесплатно, и он поставляется с некоторыми приятными дополнениями. Дорого это или дешево, зависит от вашей точки зрения. Для меня это было дешево. Затраты времени на то, чтобы скрыть код, работающий и надежный с помощью PAR или мессинга с perlcc было легко меньше, чем цена пакета. ИММВ.
Для Python Вы можете вызвать свой код и передать файл *.pyc клиенту.
Для Linux исполняемый файл - это то, что имеет набор +x, поэтому нет необходимости компилировать сценарии. Чтобы скрыть свой исходный код, вы можете использовать обфускатор. Это делает ваш исходный код нечитаемым.
Я никогда не использовал это, поэтому я не знаю, насколько легко это настроить, но вы можете использовать HipHop PHP, чтобы превратить ваши PHP-скрипты в код C++ и скомпилировать их. (Предполагая, что вы решите написать их на PHP)
Для Python вы можете использовать cx.freeze. Я не использовал это, но я считаю, что он в основном объединяет файл .pyc в zip-файл и добавляет исполняемый интерфейс.
В качестве альтернативы вы можете попробовать скомпилировать свой код Python с помощью Cython. это переводит измененную версию языка Python в код C, который затем может быть скомпилирован. Обычно это используется для написания высокопроизводительных расширений или интерфейса с существующими библиотеками C, но последняя версия также может может использоваться для создания полного исполняемого файла.