% perl -MO=Deparse chester
chester syntax OK
$+ + s/\\\s q\\+//s
+ s/$/$$/s / s///s
. s[{q`!^/s.`^q\s][. s]s
. s/\d*/do { 'JAPH' }/es + 'es)/$'
+ s/$_\$/$_$_/s
+ s///s
+ print($_);
(whitespace added for clarity).
Once it's been through the wringer it becomes clear what is happening (well, to me at least). As it turns out, it looked like chester threw a couple of diversions in the mix.
It used to be that a particularly clever obfu will cause B::Deparse to crash, which would prevent such casual analysis. As a result, for better or worse, B::Deparse has lots more smarts these days and it's just about impossible to trip it up. Much kudos is earnt by managing to do so.
• another intruder with the mooring in the heart of the Perl
|