The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Запутать код на 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, 18:02 , 02-Июн-06 (1)
    • Запутать код на Perl, !*! MTHawk, 11:02 , 05-Июн-06 (2)
      >Это называется Obfuscated code(http://en.wikipedia.org/wiki/Perl#Fun_with_Perl).
      >Поиск в гугле выдаст много ссылок. Требует очень хорошего знания языка, как
      >минимум.
      >Почему-бы просто не воспользоваться perl2exe?

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

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

  • Запутать код на Perl, !*! dsl, 04:47 , 07-Июн-06 (3)



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру