no-code - пакет для скрытия кода на языке Python
Опубликован инструментарий no-code, позволяющий скрывать код в скриптах на языке Python. Преобразованный скрипт выглядит в редакторах кода как одна строка »# coding: no» без какого-либо иного содержимого, но при этом продолжает запускаться и выполнять прежние функции. Инструментарий создан под впечатлением от шуточной философии No Code, в соответствии с которой лучшим способом написания безопасных и надёжных приложений является полное отсутствие кода. Отмечается, что данная философия хороша, но иногда требуется, чтобы программа выполняла какие-то действия. No-code решает эту проблему и позволяет распространять программы «без кода», но выполняющие действия.
Метод скрытия основан на кодировании содержимого при помощи двух Unicode-символов, имеющих нулевую длину (не приводящие к отступу пробелы 0×200B и 0×200C). Один невидимый символ отождествляется с »0», а второй с »1».
$ cat some_code.py
print("Hello, world!")
$ no_code some_code.py › no_code.py
$ cat no_code.py
# coding: no
$ python no_code.py
Hello, world!
$ yes_code no_code.py › some_code.py
$ cat some_code.py
print("Hello, world!")
Строка »# coding: no» в скрипте со скрытым кодом указывает на использование в файле кодировки с именем «no» — ключевое слово «coding:» применяется в Python для задания кодировки исходного кода. Для запуска преобразованного скрипта требуется установка Python-пакета «no_code», который включает файл «no.pth», вызываемый при использовании кодировки c именем «no» для декодирования перед обработкой парсером. Для скрытия не всего файла, а отдельных порций с кодом, проектом предоставляются функции no_code.nothing () и no_code.something ().
Из похожих проектов можно отметить Perl-модуль Acme: Bleach, преобразующий код в представление из пробелов и табуляций, а также JavaScript-библиотеку INVISIBLE.js, позволяющую скрывать код через кодирование в символы с нулевой длиной.
Источник: http://www.opennet.ru/opennews/art.shtml? num=64148
© OpenNet
