Opublikowano narzędzie no-code, które pozwala na ukrywanie kodu w skryptach w języku Python. Przekształcony skrypt w edytorach kodu wygląda jak jedna linia „# coding: no” bez jakiejkolwiek innej treści, ale nadal działa i wykonuje swoje dotychczasowe funkcje. Narzędzie zostało stworzone pod wpływem żartobliwej filozofii No Code, zgodnie z którą najlepszym sposobem pisania bezpiecznych i niezawodnych aplikacji jest całkowity brak kodu. Zauważono, że ta filozofia jest dobra, ale czasami konieczne jest, aby program wykonywał jakieś akcje. No-code rozwiązuje ten problem i pozwala na dystrybucję programów „bez kodu”, które jednak wykonują działania.
Metoda ukrywania opiera się na kodowaniu zawartości za pomocą dwóch symboli Unicode, które mają zerową długość (niewidoczne spacje 0x200B i 0x200C). Jeden niewidoczny znak jest utożsamiany z „0”, a drugi z „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!”)
Linia „# coding: no” w skrypcie z ukrytym kodem wskazuje na użycie w pliku kodowania o nazwie „no” — kluczowe słowo „coding:” jest stosowane w Pythonie do określenia kodowania źródła. Aby uruchomić przekształcony skrypt, wymagana jest instalacja pakietu Python „no_code”, który zawiera plik „no.pth”, wywoływany przy użyciu kodowania o nazwie „no” do dekodowania przed przetworzeniem przez parser. Aby ukryć nie cały plik, ale poszczególne fragmenty kodu, projekt oferuje funkcje no_code.nothing() i no_code.something().
Wśród podobnych projektów można wymienić moduł Perla Acme::Bleach, który przekształca kod w reprezentację z użyciem spacji i tabulatorów, oraz bibliotekę JavaScript INVISIBLE.js, która pozwala na ukrywanie kodu poprzez kodowanie w symbole z zerową długością.
Źródło: opennet.ru
