Ein neues No-Code-Tool wurde veröffentlicht, das es ermöglicht, Code in Python-Skripten zu verbergen. Das umgewandelte Skript erscheint in Code-Editoren als eine einzige Zeile "# coding: no" ohne weiteren Inhalt, aber es wird weiterhin ausgeführt und behält seine bisherigen Funktionen. Dieses Tool wurde inspiriert von der humorvollen Philosophie des No Code, die besagt, dass der beste Weg zur Entwicklung sicherer und zuverlässiger Anwendungen der völlige Verzicht auf Code ist. Diese Philosophie hat ihre Vorzüge, jedoch gibt es oft Situationen, in denen Programme aktive Handlungen erfordern. No-Code löst dieses Problem und ermöglicht die Verbreitung von "codefreien" Programmen, die dennoch Funktionen ausführen.
Die Methode zur Verschleierung basiert auf der Kodierung von Inhalten mit zwei Unicode-Zeichen, die eine null Länge haben (nicht von Leerzeichen abstandhaltende 0x200B und 0x200C). Ein unsichtbares Zeichen wird mit „0“ identifiziert, das andere mit „1“. $ cat some_code.py print("Hallo, Welt!") $ no_code some_code.py > no_code.py $ cat no_code.py # coding: no $ python no_code.py Hallo, Welt! $ yes_code no_code.py > some_code.py $ cat some_code.py print("Hallo, Welt!")
Die Zeile «# coding: no» in einem Skript mit verstecktem Code weist darauf hin, dass im Datei eine Kodierung namens «no» verwendet wird – das Schlüsselwort «coding:» wird in Python verwendet, um die Kodierung des Quellcodes festzulegen. Um das transformierte Skript auszuführen, ist die Installation des Python-Pakets «no_code» erforderlich, das die Datei «no.pth» enthält, die beim Einsatz der Kodierung mit dem Namen «no» zum Dekodieren vor der Verarbeitung durch den Parser aufgerufen wird. Um nicht die gesamte Datei, sondern einzelne Portions des Codes zu verbergen, bietet das Projekt die Funktionen no_code.nothing() und no_code.something().
Aus ähnlichen Projekten sind das Perl-Modul Acme::Bleach hervorzuheben, das Code in eine Darstellung aus Leerzeichen und Tabulatoren umwandelt, sowie die JavaScript-Bibliothek INVISIBLE.js, die es ermöglicht, Code durch Kodierung in Zeichen mit null Länge zu verstecken.
Quelle: opennet.ru
