Отправляет email-рассылки с помощью сервиса Sendsay

как "зашифровать" perl script?

Hi comp!!!

Привет всем!
появилась необходимость скрыть код perl скрипта.
Вопрос: какие методы существуют, какие из них наиболее эффективны
(ну что бы с расшифровкой пришлось возиться как можно дольше).

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

From Russia with love
mailto:se***@m*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sergey Tamkovich Sat, 1 Nov 2003 13:17:14 +0300 (#15140)

 

Ответы:

Sergey Tamkovich wrote:

Самый "тупой" - скомпилировать скрипт. Вроде такая (экспериментальная?)
возможность в perl была. Но толку от нее никакого по понятным причинам

А для чего это вам нужно? Расскажите подробнее.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 02 Nov 2003 00:05:11 +0300 (#15282)

 

On Sun Nov 02, 2003 at 12:05:11AM +0300, Awk wrote:

"Программа скомпиленная с помощью perlcc - не perl программа" (c)
перл-хакеров. На досуге попробуйте собрать маленькую программку (~100 строк).

Возможно! она даже соберется, но откажется работать с какой-нибудь
глупой ошибкой :(. А самое интересное :)
~/tmp % cat > ex.pl<<EOF

~/tmp % perlcc ex.pl
~/tmp % ./a.out
Hello, World~/tmp % ll -h a.out
-rwxr-xr-x 1 chip users 1.1M 2003-11-02 22:55 a.out
~/tmp %

Особенно радует ее размер :)

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

:ChiP:.

:wq

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ChiP Sun, 2 Nov 2003 22:56:50 +0300 (#15520)

 

Уважаемый ChiP!!!

Sunday, November 2, 2003, 10:56:50 PM, you wrote:

~/tmp % cat >> ex.pl<<EOF

На сколько я знаю - компилирование перл-скриптов, заключается в
объединении некого урезанного интерпретатора и самого скрипта в один
файл =)

=))

Пристыдили меня =))

--

С Уважением,

Сергей.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sergey Tamkovich Mon, 3 Nov 2003 01:11:20 +0300 (#15543)

 

On Mon Nov 03, 2003 at 01:11:20AM +0300, Sergey Tamkovich wrote:

perldoc perlcc

имеются ввиду скупердяи заказчики :) Которые за каждую копейту трястись
будут.

:ChiP:.

:wq

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ChiP Mon, 3 Nov 2003 07:09:50 +0300 (#15924)

 

Самый простой и действенный способ "шифровки" больших программ
- искажение идентификаторов.

Пишете программку, а потом напускаете на нее "искажалку", которая
осмысленные идентификаторы перелопачивает в кракозябру... типа
TF2bA79sTRw... также дополнительно можно форматирование порушить...
в одну строчку все вытянуть, абзационное выравнивае в стиле
"бык насc#л" и т.д.

Это можно и вручную делать, но тоскливо... читать такой текст просто
невозможно...

Ответить   Mon, 3 Nov 2003 13:39:01 +0600 (#15626)

 

Приветствую, Vladimir,

А не подскажите софтинку соответствующую?
Я вот пол инета облазил, нашел только на freshmeat.org платный (ОЧЕНЬ
дорогой, по российским меркам) продукт, названия не помню,
замысловатое какое-то, навроде "скрэмблер", но не скрэмблер. ;-)

Пришлось свою написать, на перле естессно... Работает. :)
Народу не предлагаю, потому как она СОВСЕМ не универскальная и
работать с очень хитро закрученными конструкциями не будет. Для себя
делал, необходимый минимум. + она не автоматическая и где сомневается
- переспрашивает. ;-)

Как дополнительное шифрование могу порекомендовать готовый искаженный
исходник прогнать через функцию pack("*u", $line_of_my_src) , а потом
полученное на выходе через eval { unpack(...) } запускать. Только не
забудьте после ентого eval'а вписать:
die $@ if ($@);
чтоб ошибки возвращал.

Кстати, хороший пример зашифрованного исходника - gtchat
(www.gtchat.de). Посмотрите, очень симпатичный код получается. :)

Ответить   Tue, 11 Nov 2003 19:04:29 +0500 (#19268)

 

Hello Michael,

Tuesday, November 11, 2003, 8:04:29 PM, Michael <michael***@m*****.ru> wrote:

Дело в том, что искажалка должна делать синтаксический разбор, чтоб
вычленять идентификаторы и оставлять в покое операторы языка...
т.е. для Си это будет одна "софтина", а для Перла - другая...
либо ей надо указывать, какие слова не трогать... да, так наверное
проще... ввел все операторы (указал их искажалке, что не трогать)
и на уровне лексического разбора все решил... ну, может еще
комментарии выырезать...

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

софт по доп. искажению, к сожадению, не знаю, но судя по всему он
просто пишется, т.к. алгоритм простой...

Ответить   Wed, 12 Nov 2003 11:22:24 +0600 (#19530)

 

Приветствую, Vladimir,

Да, я понимаю и отчасти принимаю вашу точку зрения. Я встречал массу
подобных утверждений, когда искал "искажалку" в Инете.
Это утверждение характерно для ярых последователей принципа Open
Source и, если отталкиваться от этого принципа, они правы.
Однако не стоит забывать и о том, что есть люди, которые зарабатывают
себе на жизнь именно программированием, и эти люди стремятся получить
максимальную выгоду от своего труда. А как получить доход от создания
свободно распространяемого ПО? Я не вижу тут никаких возможностей.
Возможно, кто-то подскажет.
Хорошо поддерживать Open Source в свободное от работы время, когда
имеешь стабильный заработок и можно себе позволить создание ПО для
всего мира, этакая дань уважения мировому сообществу, единомышленникам.
Это несомненно.

В случае с языком Паскаль - очень просто, в случае с C,C++ - сложнее,
а вот в случае с Perl - очень сложно, потому как очень нестабильные
синтаксические конструкции. Опять же базовый принцип Ларри Уолла -
TIMTOWTDI (There Is More Then One Way To Do It). Это сильно усложняет
процесс синтаксического анализа.

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

Ответить   Wed, 12 Nov 2003 22:02:26 +0500 (#19878)

 

On Wed Nov 12, 2003 at 10:02:26PM +0500, Michael wrote:

Для случая Си, использовать для большинства функций спецификатор static.
Для С++ использовать пространства имен( namespace's ).

Думаю для C++ подход с пространствами ничуть не хуже units для паскаля.

В итоге, некоторое вещи вообще нормально сдать нельзя :) Например,
примитивный switch выливается в груду if.

Кстати, некоторые скриптовые языки позволяют распространять свои модули
в предкомплированном виде, например, Python - .pyc файлы (и еще
какие-то, сейчас не помню).

Долго я искал язык "для души" (Си и Русский не в счет :) с поддержкой ООП. После
года скитаний я нашел - ruby. Рекомендую!

Там много подходов. Если бы у меня в свое время не полетел раздел я бы
сбросил пару статек для php + perl. Там были и ссылки на различные
"софтинки" изменяющие или шифрующие.

:ChiP:.

:wq

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ChiP Thu, 13 Nov 2003 00:34:36 +0300 (#20329)

 

Hello ChiP,

Thursday, November 13, 2003, 3:34:36 AM, ChiP wrote:
[...]

Этим летом на конфе "Перспективыы информационнх систем" встречался
один странный (на мой взгляд) человек из Москвы, они там занимаются
тем, что пытаются обманывать обманщиков (cheat the cheaters :-)
как утверждается для пущей секретности при разработке
сверх-интеллектуальных алгоритмов...
и, похоже, достаточно много людей этой проблемой занимаются...
термин obfuscating там употребляется... можно в Гугле поискать.

Ответить   Fri, 14 Nov 2003 13:29:01 +0600 (#20512)

 

On Tue Nov 11, 2003 at 07:04:29PM +0500, Michael wrote:

а я настаиваю :) Народ доработает, если идея хорошая изначально была
заложена.

yes | progname :)

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ChiP Wed, 12 Nov 2003 07:57:07 +0300 (#19727)

 

Приветствую, ChiP,

Народ, вы меня явно переоценеваете. :)
Моя прога занимается всего лишь тем, что заменяет имена переменных на
бессмысленные последовательности буквоцифр. Программисты понимают, что
такое ЧУЖОЙ тсходник с НЕОСМЫЛЕННЫМИ переменными. ;-)
Грубо говря, один регэксп s///;

А идея такая: ищем что-то похожее на переменную, пропускаем
стандартные перловые глобальные переменные, выкусываем имя переменной,
генерируем для неё другое имя, заменяем.
Если пременная в длину имеет более 2 символов, то заменяем без
вопросов, если два символа, на за знаком $ следует буква, тоже
заменем, в противном случае сомневаемся и спрашиваем юзверя.
Так, запись вроде $str =~ /^\w+$/ заменить "$str" без вопросов и
спросит, чего делать с последовательностью "$/" .

Вот такая тупая шняга. Оно вам надо? ;-)

Ах, да. Попутно пропускаем пустые строки и строки, начинающиеся с #.
Что тоже хорошо - комменты покоцать.

А после подобной экзекуции можно применить метод pack/unpack, как я в
предыдущем письме описывал. ;-)

Ну в общем если народу очень надо, я маленько до ума её доведу и с
позволения модератора сюда запостю (или запосчу, или запощу, как
правильно ;-), post into, в общем). А может Модератор иной вариант
предложет, более качественный. :)

Ответить   Wed, 12 Nov 2003 20:56:04 +0500 (#19835)

 

On Sat Nov 01, 2003 at 01:17:14PM +0300, Sergey Tamkovich wrote:

perldoc -q hide

почему же, можно и зашифровать.

:ChiP:.

:wq

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   ChiP Sun, 2 Nov 2003 22:50:58 +0300 (#15523)