URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5465
[ Назад ]

Исходное сообщение
"Запутать код на Perl"

Отправлено MTHawk , 31-Май-06 13:24 
Доброго времени суток.
Насколько я знаю - Perl славится своей возможностью написать программу не читаемую среднестатистическим программером, посредством использования умолчаний и прочих "перловых" фенечек.

Сам неоднократно встречал посты типа
"Подскажите, что делает сдледующий код:
#!/usr/bin/perl
,;s/"@#4-;,'@"\\/;$Q^,,//;
"

Ну это образно выражаясь.
Прежде чем постить месадж почитал немного на эту тему. Все источники сводятся либо к использованию сторонних модулей Sypher, Byteloader и т.д. либо к методике "source mangling" - Создание бессмысленных имен переменных, отказ от разбиения на логические абзацы кода программы, не использование переносов строки и т.д.

И все же это не совсем то. Ибо не дает результата - показанного мною в "примере".
Имеется ли документация о нечто подобном, или это просто склад ума + доскональное знание языка. Буду признателен за любые tips&tricks

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

exit 0 if ($some_variable eq 'some_value');

some_value желательно задать не в явном виде (это числовое значение - возможно получить математическими расчетами либо прочитать из стороннего файла (опять же максимально завуалированно))

Всем заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Запутать код на Perl"
Отправлено idle , 02-Июн-06 18:02 
>Доброго времени суток.
>Насколько я знаю - Perl славится своей возможностью написать программу не читаемую
>среднестатистическим программером, посредством использования умолчаний и прочих "перловых" фенечек.
>
>Сам неоднократно встречал посты типа
>"Подскажите, что делает сдледующий код:
>#!/usr/bin/perl
>,;s/"@#4-;,'@"\\/;$Q^,,//;
>"
>
>Ну это образно выражаясь.
>Прежде чем постить месадж почитал немного на эту тему. Все источники сводятся
>либо к использованию сторонних модулей Sypher, Byteloader и т.д. либо к
>методике "source mangling" - Создание бессмысленных имен переменных, отказ от разбиения
>на логические абзацы кода программы, не использование переносов строки и т.д.
>
>
>И все же это не совсем то. Ибо не дает результата -
>показанного мною в "примере".
>Имеется ли документация о нечто подобном, или это просто склад ума +
>доскональное знание языка. Буду признателен за любые tips&tricks
>
>А вообще все сводится к тому, что в тексте некоего большого скрипта
>нужно спрятать максимально завуалированный код
>
>exit 0 if ($some_variable eq 'some_value');
>
>some_value желательно задать не в явном виде (это числовое значение - возможно
>получить математическими расчетами либо прочитать из стороннего файла (опять же максимально
>завуалированно))
>
>Всем заранее спасибо.

Это называется Obfuscated code(http://en.wikipedia.org/wiki/Perl#Fun_with_Perl).
Поиск в гугле выдаст много ссылок. Требует очень хорошего знания языка, как минимум.
Почему-бы просто не воспользоваться perl2exe?


"Запутать код на Perl"
Отправлено MTHawk , 05-Июн-06 11:02 
>Это называется Obfuscated code(http://en.wikipedia.org/wiki/Perl#Fun_with_Perl).
>Поиск в гугле выдаст много ссылок. Требует очень хорошего знания языка, как
>минимум.
>Почему-бы просто не воспользоваться perl2exe?

Сколько я не экспериментировал с perl2exe - ничего, сложнее примитивных алгоритмов он брать не хочет.
Когда в скрипт включается модуль (а их есть DBI, Socket, Date::Calc) - программа или не компилится вообще, или компилится, но не запускается.
Как выход - использовать компилятор perlcc с ключем -B, генерирующим код для модуля Byteloader.

И все же это не то, что хотелось бы.
Очень интересно освоить "высший пелоаж".
Спасибо за референс. Буду искать.


"Запутать код на Perl"
Отправлено dsl , 07-Июн-06 04:47 
>Доброго времени суток.
>Насколько я знаю - Perl славится своей возможностью написать программу не читаемую
>среднестатистическим программером, посредством использования умолчаний и прочих "перловых" фенечек.
>
>Сам неоднократно встречал посты типа
>"Подскажите, что делает сдледующий код:
>#!/usr/bin/perl
>,;s/"@#4-;,'@"\\/;$Q^,,//;
>"
>
>Ну это образно выражаясь.
>Прежде чем постить месадж почитал немного на эту тему. Все источники сводятся
>либо к использованию сторонних модулей Sypher, Byteloader и т.д. либо к
>методике "source mangling" - Создание бессмысленных имен переменных, отказ от разбиения
>на логические абзацы кода программы, не использование переносов строки и т.д.
>
>
>И все же это не совсем то. Ибо не дает результата -
>показанного мною в "примере".
>Имеется ли документация о нечто подобном, или это просто склад ума +
>доскональное знание языка. Буду признателен за любые tips&tricks
>
>А вообще все сводится к тому, что в тексте некоего большого скрипта
>нужно спрятать максимально завуалированный код
>
>exit 0 if ($some_variable eq 'some_value');
>
>some_value желательно задать не в явном виде (это числовое значение - возможно
>получить математическими расчетами либо прочитать из стороннего файла (опять же максимально
>завуалированно))
>
>Всем заранее спасибо.


Попробую догадаться.
Авторизационную информацию не скроешь, все равно найдут!
Воспользуйся системой SSL сертификатов.