http://qs321.pair.com?node_id=243016


in reply to Here is a commercial obfuscator

That is certainly not irreversible. The output from Stunnix Perl-Obfus is more perl code. Running the output from that program through B::Deparse and/or PerlTidy cleans it up nicely. All the symbols are still named oddly but that shouldn't be a challenge to any would-be source code reader.

So yes, it makes the source painful to work with. Its a fallacy to assert that it is irreversable.

require(File::Temp); my($z5da4d3837d, $zc11e41b4ef) = File::Temp::tempfile('UNLINK', 1); my $z9e5935eea4; if (@z6a703c020a) { my($z5a5fa8125d, $zcc158ad3e0) = File::Temp::tempfile('UNLINK', 1) +; print $z5a5fa8125d "=over 8\n\n"; die q[Can't print ] . $zcc158ad3e0 . ': ' . $! unless print $z5a5f +a8125d @z6a703c020a; print $z5a5fa8125d "=back\n"; die q[Can't close ] . $zcc158ad3e0 . ': ' . $! unless close *$z5a5 +fa8125d; @z8374cc586e = $zcc158ad3e0; $z9e5935eea4 = 1; } foreach $_ (@z8374cc586e) { my $z8348550157 = $_; my $zbea0aee021; if ($opt_t) { 'Pod::Text'->z8c2ed69c0e->z4afc07e0ef($z8348550157, $z5da4d383 +7d); } elsif (not $opt_u) { my $z1dfa4cd057 = catfile($z1387c3e117, $z9101bb5154) . (' --l +ax ' . $z8348550157 . ' | ' . $opt_n . ' -man'); $z1dfa4cd057 .= ' | col -x' if $^O =~ /hpux/; my $z7d70dd4ea9 = `$z1dfa4cd057`; $z7d70dd4ea9 = z3d52c17699($z7d70dd4ea9) if $z9e5935eea4; unless ($zbea0aee021 = $?) { die q[Can't print ] . $zc11e41b4ef . ': ' . $! unless prin +t $z5da4d3837d $z7d70dd4ea9; } } if ($opt_u or $zbea0aee021) { die q[Can't open ] . $z8348550157 . ': ' . $! unless open zf9d +3fbdfa8, '<', $z8348550157; my $z5f7e4d50b8 = 1; local $_; while (defined($_ = <zf9d3fbdfa8>)) { $z5f7e4d50b8 = $1 eq 'cut' if /^=(\w+)/; next if $z5f7e4d50b8; die q[Can't print ] . $zc11e41b4ef . ': ' . $! unless prin +t $z5da4d3837d $_; } die q[Can't close ] . $z8348550157 . ': ' . $! unless close zf +9d3fbdfa8; } }