Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

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$/}


Comment on Re: is it irreversible
Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://246846]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (11)
As of 2014-07-11 13:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (226 votes), past polls