Хорошие компиляторы для компиляции скриптов perl/python/php в исполняемые файлы Linux?


Я работаю над проектом, который требует чтения текстовых файлов, извлечения из них данных, а затем создания отчетов (текстовых файлов). Поскольку существует много синтаксического анализа строк, я решил сделать это на Perl, Python или PHP (предпочтение в этом порядке ). Но я не хочу раскрывать исходный код своему клиенту. Есть ли какой-нибудь хороший компилятор для компиляции скриптов perl/python/php в исполняемые файлы Linux?

Я не ищу 100% идеального, но я ищу по крайней мере на 90 % идеальный вариант. Под совершенным я подразумеваю, что компилятору не требуется писать сценарии с ограниченным набором языковых функций.

Author: Ethan, 2010-07-17

8 answers

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

 2
Author: daxim, 2010-07-17 11:30:18

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

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

 4
Author: hobbs, 2010-07-17 08:48:28

Существует 3 варианта шифрования кода Perl:

  1. Используйте PAR для создания исполняемого файла с помощью PAR::Filter::Запутать или PAR::Фильтр::Крипто

  2. Используйте фильтр::Крипто::кРиптоФайл (потребуются некоторые модули, установленные в целевой ОС)

  3. Превратитесь в модуль и зашифруйте в Module::Crypt.

Также вы можете попробовать B::C - он был удален из основного дистрибутива Perl и теперь доступен на CPAN.

 2
Author: Alexandr Ciornii, 2010-07-17 08:32:06

До сих пор мы слышали о perlcc и о некоторых фильтрах запутывания. Это может сработать.

Мне очень повезло с PerlApp от ActiveState, который является частью их набора для разработки Perl.

Это хорошо работает, чтобы объединить ваш код и скрыть его. Вы можете попробовать его бесплатно, и он поставляется с некоторыми приятными дополнениями. Дорого это или дешево, зависит от вашей точки зрения. Для меня это было дешево. Затраты времени на то, чтобы скрыть код, работающий и надежный с помощью PAR или мессинга с perlcc было легко меньше, чем цена пакета. ИММВ.

 1
Author: daotoad, 2010-07-18 02:41:12

Для Python Вы можете вызвать свой код и передать файл *.pyc клиенту.

 0
Author: Quonux, 2010-07-17 06:23:10

Для Linux исполняемый файл - это то, что имеет набор +x, поэтому нет необходимости компилировать сценарии. Чтобы скрыть свой исходный код, вы можете использовать обфускатор. Это делает ваш исходный код нечитаемым.

 0
Author: SiggyF, 2010-07-17 06:35:30

Я никогда не использовал это, поэтому я не знаю, насколько легко это настроить, но вы можете использовать HipHop PHP, чтобы превратить ваши PHP-скрипты в код C++ и скомпилировать их. (Предполагая, что вы решите написать их на PHP)

Http://developers.facebook.com/blog/post/358

Http://github.com/facebook/hiphop-php

 0
Author: Arctic Fire, 2010-07-17 07:20:42

Для Python вы можете использовать cx.freeze. Я не использовал это, но я считаю, что он в основном объединяет файл .pyc в zip-файл и добавляет исполняемый интерфейс.

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

 0
Author: Dave Kirby, 2010-07-17 11:58:33