这个Perl代码如何工作?

Uma*_*air 8 perl deobfuscation

我找到了这个Perl程序:

''=~('(?{'.(']])@+}'^'-/@._]').'"'.('/<[*-_<+>?}{>]@}+@}]])@+}@<[*-_<+>?}{>]@^'^'`^=_^<]_[[]+[/,]_/]-/@._]/^=_^<]_[[]+[/,|').',$/})')
Run Code Online (Sandbox Code Playgroud)

它打印 "Obfuscated Perl to print obfuscated Perl"

我想知道它是如何打印出来的.

mob*_*mob 9

它正在充分利用按位串XOR运算符 ^.

']])@+}' ^ '-/@._]'
Run Code Online (Sandbox Code Playgroud)

评估到print,

'/<[*-_<+>?}{>]@}+@}]])@+}@<[*-_<+>?}{>]@^' 
    ^ '`^=_^<]_[[]+[/,]_/]-/@._]/^=_^<]_[[]+[/,|'
Run Code Online (Sandbox Code Playgroud)

评估到Obfuscated Perl to print obfuscated Perl",整个程序减少到

$ perl -MO=Deparse ...
'' =~ m[(?{print "Obfuscated Perl to print obfuscated Perl",$/})];
... syntax OK
Run Code Online (Sandbox Code Playgroud)

有关: Acme::EyeDrops