我找到了这个Perl程序:
''=~('(?{'.(']])@+}'^'-/@._]').'"'.('/<[*-_<+>?}{>]@}+@}]])@+}@<[*-_<+>?}{>]@^'^'`^=_^<]_[[]+[/,]_/]-/@._]/^=_^<]_[[]+[/,|').',$/})')
打印"Obfuscated Perl to print obfuscated Perl"
我想知道它是如何打印出来的。
答案 0 :(得分:9)
正在充分利用bitwise string XOR operator ^
。
']])@+}' ^ '-/@._]'
评估为print
,
'/<[*-_<+>?}{>]@}+@}]])@+}@<[*-_<+>?}{>]@^'
^ '`^=_^<]_[[]+[/,]_/]-/@._]/^=_^<]_[[]+[/,|'
评估为Obfuscated Perl to print obfuscated Perl"
,整个程序缩减为
$ perl -MO=Deparse ...
'' =~ m[(?{print "Obfuscated Perl to print obfuscated Perl",$/})];
... syntax OK