monowar
Постоянный участник
- Сообщения
- 401
- Реакции
- 543
Опубликован инструментарий no-code, позволяющий скрывать код в скриптах на языке Python. Преобразованный скрипт выглядит в редакторах кода как одна строка "# coding: no" без какого-либо иного содержимого, но при этом продолжает запускаться и выполнять прежние функции. Инструментарий создан под впечатлением от шуточной философии No Code, в соответствии с которой лучшим способом написания безопасных и надёжных приложений является полное отсутствие кода. Отмечается, что данная философия хороша, но иногда требуется, чтобы программа выполняла какие-то действия. No-code решает эту проблему и позволяет распространять программы "без кода", но выполняющие действия.
Метод скрытия основан на кодировании содержимого при помощи двух Unicode-символов, имеющих нулевую длину (не приводящие к отступу пробелы 0x200B и 0x200C). Один невидимый символ отождествляется с "0", а второй с "1".
Строка "# coding: no" в скрипте со скрытым кодом указывает на использование в файле кодировки с именем "no" - ключевое слово "coding:" применяется в Python для задания кодировки исходного кода. Для запуска преобразованного скрипта требуется установка Python-пакета "no_code", который включает файл "no.pth", вызываемый при использовании кодировки c именем "no" для декодирования перед обработкой парсером. Для скрытия не всего файла, а отдельных порций с кодом, проектом предоставляются функции no_code.nothing() и no_code.something().
Из похожих проектов можно отметить Perl-модуль Acme::Bleach, преобразующий код в представление из пробелов и табуляций, а также JavaScript-библиотеку INVISIBLE.js, позволяющую скрывать код через кодирование в символы с нулевой длиной.
Источник
Метод скрытия основан на кодировании содержимого при помощи двух Unicode-символов, имеющих нулевую длину (не приводящие к отступу пробелы 0x200B и 0x200C). Один невидимый символ отождествляется с "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, позволяющую скрывать код через кодирование в символы с нулевой длиной.
Источник
Последнее редактирование модератором: