Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: is it irreversible

by jonadab (Parson)
on Mar 31, 2003 at 04:47 UTC ( #246846=note: print w/replies, xml ) Need Help??

in reply to Re: Re^2: is it irreversible
in thread Here is a commercial obfuscator

it's terribly time-consuming and difficult since only perl can parse Perl

cperl-mode comes darn close. I've seen it fooled a couple of times, but it's very rare. Almost all of the Obfuscated Perl Competition winners are correctly syntax-highlighted by cperl-mode, and excepting some disagreement between it and me about the correct indentation of lines that start with the catenation operator (I want subsequent ones to line up, and it indents each one further than the previous), automatically indented as well.

cperl-mode, for those who don't know, is written in lisp, of course, and comes with Emacs.

for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}

Replies are listed 'Best First'.
Re: Re: is it irreversible
by diotalevi (Canon) on Mar 31, 2003 at 13:15 UTC

    cperl-mode is easily confused. Or at least it has been many times when I've preferred it wasn't. Its certainly no panacea though it should handle all the output from all of the recently mentioned obfuscators just fine.

      cperl-mode is easily confused.

      Yes, I've seen it confused a couple of times, as I said, by obfuscations of one sort or another. But it's not confused by anything that would normally be done in code intended for real use. If an automatic obfuscator wanted to confuse it, I think it would have to do so deliberately, or else be really clever in general -- much more clever than substituting variable names and removing spaces.

      for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://246846]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (5)
As of 2018-06-22 00:00 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (120 votes). Check out past polls.