Ich habe gerade ein "Code-Obfuscation-Tool" entwickelt, das folgenden (kompilier- und lauffähigen!) Java-Code erzeugt:
Den Code könnt ihr euch herunterladen (code.txt (1 kb)) oder hier ansehen:
public class Obfuscation {/**\u002a\u002f\u0020\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u002e\u002e\u0020\u0061\u0072\u0067\u0073\u0029\u007b\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0022\u0041\u006e\u006e\u0079\u0065\u006f\u006e\u0067\u0068\u0061\u0073\u0065\u0079\u006f\u0021\u0022\u0029\u003b\u007d}
Nach dem Kompilieren und Starten des Programms wird man auf Koreanisch begrüßt (romanisierte Form von 안녕하세요). Weshalb Java scheinbar einen Kommentar als Code ausführt, ist klar.
Ich stelle mir allerdings die Frage, ob die gängigen IDEs/Editoren diesen "Bug" bewusst zulassen, um Leser zu verwirren. Durch die Färbung wirkt es nämlich so, als ob es sich um einen JavaDoc-Kommentar handelt. Dem ist aber nicht so, da das erste auftauchende \u002f den Kommentar bereits schließt. Die in IDEs/Editoren eingebaute Code-Coloring-Funktion "überliest" das wohl. Siehe z.B. auch:
Dabei wäre es sehr einfach, eine weitere Regel hinzuzufügen, um diese Täuschung zu unterbinden.
Meint ihr, dass das intendiert ist?
Autor: Florian André Dalwigk