Хорошие компиляторы для компиляции скриптов perl / python / php в исполняемые файлы linux? - PullRequest
2 голосов
/ 17 июля 2010

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

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

Ответы [ 8 ]

4 голосов
/ 17 июля 2010

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

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

2 голосов
/ 17 июля 2010

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

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

  2. Использовать Filter :: Crypto :: CryptFile (потребуется несколько модулей, установленных в целевой ОС)

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

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

2 голосов
/ 17 июля 2010

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

1 голос
/ 18 июля 2010

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

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

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

0 голосов
/ 17 июля 2010

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

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

0 голосов
/ 17 июля 2010

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

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

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

0 голосов
/ 17 июля 2010

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

0 голосов
/ 17 июля 2010

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

...