You know what's interesting is the way in which B::Deparse breaks this obfu. In specific, Deparse breaks the portion that goes like this: $|[ $a++ ] = chr $;;. Deparse turns that into $|[ $a++ ] = chr $;. The important difference is the missing statement terminator, ';'. After being deparsed, until I manually add that back in, I get the following:
Scalar found where operator expected at mytest2.pl line 16, near "$; $;" (Missing operator before $;?) syntax error at mytest2.pl line 16, near "$; $; " Execution of mytest2.pl aborted due to compilation errors.
I know the old mantra is "Only perl can parse Perl", and this is an example of that being the case. I'd say it's a bug in B::Deparse, but then we can't expect it to be perfect, especially when presented with an obfu. I'm just surprised that it got tripped up by something so trivial as a statement terminating semicolon.
Dave
In reply to Re: Since JAPH seems to be popping out all over
by davido
in thread Since JAPH seems to be popping out all over
by whio
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |