perlスクリプト難読化

perlスクリプトを、ユーモアを交えて難読化してくれるモジュール

http://search.cpan.org/~asavige/Acme-EyeDrops-1.62/lib/Acme/EyeDrops.pm

使い方や実行結果は、上記サイトを見ればわかると思いますが、、、。

以下簡単な使い方。

```perl:eyedrop.pl
#! /usr/bin/perl

use Acme::EyeDrops qw(sightly);

my $input_file = $ARGV[0];
my $output_file = $ARGV[1];
my $type = $ARGV[2];

my $fh;

open($fh, '>' . $output_file);

# 元のファイルにshebangを書いていても、難読化すると無くなるので、
# 追加しておく。実行権限を与えて使う、という予定が無ければいらない。
print($fh "#! /usr/bin/perl\n\n");

print($fh
    sightly({
        Shape      => $type,
        SourceFile => $input_file,
        Regex      => 1
    })
);

close($fh);

```

以下のファイルを読み込む想定

```perl:input.pl
#! /usr/bin/perl

for (my $i = 0; $i < 10; $i++) {
    print("Hello Hello Hello!\n");
}

```

sightlyの使い方は、ちゃんと調べていないけど、Shapeに渡す内容によって、
出力されるアスキーアートが変わる模様。
以下camelとしているが、これ以外にも色々ある。

```
[root@localhost ~]# ./eyedrop.pl input.pl output.pl camel
1 shapes completed.

```

出力されたoutput.plを見ると、、、

```text

[root@localhost ~]# cat output.pl
#! /usr/bin/perl

                                      ''=~('('.'?'
           .'{'.(                   '`'|'%').("\["^
        '-').('`'|                '!').('`'|',').'"'
 .'#'.'!'.(  ('{')^              '[').'/'.('['^'.').(
'['^'(').('['^"\)").            '/'.('`'|'"').('`'|')'
).('`'|'.').'/'.('['^          '+').('`'|'%').('['^')'
  ).('`'|',').(('!')^        '+').('!'^'+').('`'|'&').(
       '`'|'/').('['^      ')').('{'^'[').'('.('`'|'-').
      ('['^'"').('{'     ^'[').'\\'.'$'.('`'|')').(('{')^
     '[').'='.("\{"^   '[').('^'^('`'|'.')).';'.('{'^'[').
    '\\'.'$'.("\`"|   ')').('{'^'[').'<'.('{'^'[').('^'^('`'
    |'/')).(('^')^(  '`'|'.')).';'.('{'^'[').'\\'.'$'.(('`')|
    ')').'+'."\+".  ')'.('{'^'[').'\\'.'{'.('!'^'+').('{'^'['
    ).('{'^"\[").(  '{'^'[').('{'^'[').('['^'+').('['^(')')).(
    '`'|')').('`'|'.').('['^'/').'('.'\\'.'"'.('`'^'(').("\`"|
    '%').('`'|',').('`'|',').('`'|'/').('{'^'[').('`'^'(').('`'
     |'%').('`'|',').('`'|',').('`'|'/').('{'^'[').('`'^"\(").(
     '`'|'%').('`'|',').('`'|',').('`'|'/').'!'.'\\'.'\\'.("\`"|
      '.').'\\'.'"'.')'.';'.('!'^'+').'\\'.'}'.('!'^'+').('!'^'+'
       ).('!'^'+').('!'^'+').'"'.'}'.')');$:='.'^'~';$~='@'|"\(";
        $^=')'^'[';$/='`'|'.';$,='('^'}';$\='`'|'!';$:=(')')^ '}'
         ;$~='*'|'`';$^='+'^'_';$/='&'|'@';$,='['&'~';$\=','  ^((
          '|'));$:='.'^'~';$~='@'|'(';$^=')'^'[';$/ ='`'|'.'  ;$,
            ='('^'}';$\='`'|'!';$:=')'^'}';$~='*'|  '`';$^=   '+'
             ^'_'; $/='&'|'@';$,='['&'~';$\="\,"^   '|';$:=   '.'
                   ^'~';$~='@'|'(';$^=')'^'[';$/    =('`')|   '.'
                   ;$,='('^    '}';$\='`' |"\!";     $:=')'   ^+
                   '}';$~=     '*'|'`';   $^='+'     ^"\_";  $/
                   =('&')|     "\@";$,=   "\["&       "\~";  (
                   ($\))=      ','^'|';   ($:)         ='.'
                   ^"\~";     $~=('@')|   '(';         ($^)
                    =')'^     "\[";$/=    '`'|         '.';
                    ($,)=     '('^'}'     ;$\=         '`'|
                    '!';     $:=')'       ^'}'         ;$~=
                    '*'|     '`'          ;$^=         '+'^
                    '_';      $/=         '&'          |((
                    '@'        ));       $,=           '['
                    &((         '~'     ));            $\=
                    ','          ^((   '|'              ))
                    ;(             ($:))=               ((
                    ((              '.'))               ))
                    ^+             "\~";$~=             ((
                   '@'            ))|+ "\(";            $^
                  =((           ')'))^  '[';           $/=
                 '`'|         "\.";$,=   '('          ^'}'
               ;($\)=                                ('`')|
             "\!";$:=                               ')'^'}'
[root@localhost ~]#

```

もはや原形がない。
けど、実行すると、ちゃんと動く。

```text
[root@localhost ~]# chmod 755 output.pl
[root@localhost ~]# ./output.pl
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
Hello Hello Hello!
[root@localhost ~]#

```