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);
以下のファイルを読み込む想定
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を見ると、、、
[root@localhost ~]# cat output.pl
#! /usr/bin/perl
''=~('('.'?'
.'{'.( '`'|'%').("\["^
'-').('`'| '!').('`'|',').'"'
.'#'.'!'.( ('{')^ '[').'/'.('['^'.').(
'['^'(').('['^"\)"). '/'.('`'|'"').('`'|')'
).('`'|'.').'/'.('['^ '+').('`'|'%').('['^')'
).('`'|',').(('!')^ '+').('!'^'+').('`'|'&').(
'`'|'/').('['^ ')').('{'^'[').'('.('`'|'-').
('['^'"').('{' ^'[').'\\'.'$'.('`'|')').(('{')^
'[').'='.("\{"^ '[').('^'^('`'|'.')).';'.('{'^'[').
'\\'.'$'.("\`"| ')').('{'^'[').'<'.('{'^'[').('^'^('`'
|'/')).(('^')^( '`'|'.')).';'.('{'^'[').'\\'.'$'.(('`')|
')').'+'."\+". ')'.('{'^'[').'\\'.'{'.('!'^'+').('{'^'['
).('{'^"\[").( '{'^'[').('{'^'[').('['^'+').('['^(')')).(
'`'|')').('`'|'.').('['^'/').'('.'\\'.'"'.('`'^'(').("\`"|
'%').('`'|',').('`'|',').('`'|'/').('{'^'[').('`'^'(').('`'
|'%').('`'|',').('`'|',').('`'|'/').('{'^'[').('`'^"\(").(
'`'|'%').('`'|',').('`'|',').('`'|'/').'!'.'\\'.'\\'.("\`"|
'.').'\\'.'"'.')'.';'.('!'^'+').'\\'.'}'.('!'^'+').('!'^'+'
).('!'^'+').('!'^'+').'"'.'}'.')');$:='.'^'~';$~='@'|"\(";
$^=')'^'[';$/='`'|'.';$,='('^'}';$\='`'|'!';$:=(')')^ '}'
;$~='*'|'`';$^='+'^'_';$/='&'|'@';$,='['&'~';$\=',' ^((
'|'));$:='.'^'~';$~='@'|'(';$^=')'^'[';$/ ='`'|'.' ;$,
='('^'}';$\='`'|'!';$:=')'^'}';$~='*'| '`';$^= '+'
^'_'; $/='&'|'@';$,='['&'~';$\="\,"^ '|';$:= '.'
^'~';$~='@'|'(';$^=')'^'[';$/ =('`')| '.'
;$,='('^ '}';$\='`' |"\!"; $:=')' ^+
'}';$~= '*'|'`'; $^='+' ^"\_"; $/
=('&')| "\@";$,= "\["& "\~"; (
($\))= ','^'|'; ($:) ='.'
^"\~"; $~=('@')| '('; ($^)
=')'^ "\[";$/= '`'| '.';
($,)= '('^'}' ;$\= '`'|
'!'; $:=')' ^'}' ;$~=
'*'| '`' ;$^= '+'^
'_'; $/= '&' |((
'@' )); $,= '['
&(( '~' )); $\=
',' ^(( '|' ))
;( ($:))= ((
(( '.')) ))
^+ "\~";$~= ((
'@' ))|+ "\("; $^
=(( ')'))^ '['; $/=
'`'| "\.";$,= '(' ^'}'
;($\)= ('`')|
"\!";$:= ')'^'}'
[root@localhost ~]#
もはや原形がない。
けど、実行すると、ちゃんと動く。
[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 ~]#