(2011/12/29 ちょこっと追記した)
javascriptの難読化についてググってたら、たまたま検索結果にAcme::EyeDropsというPerlモジュールを見かけました。
cpan Acme::EyeDrops か、ActivePerlなら ppm install Acme-EyeDrops とかでインストール。
結構はまってしまいまして・・・eyeファイル作るの楽しいす。自己満ですけど(^^;
eyeファイルは、要は「#」だけでアスキーアートを作ればいいだけ。エディターだけで作るのは手間かかるけど、テキストペイントっていうアプリが一番使いやすい。かなり古いけど。この手のアプリって、なんか有名なものってあるんですかね?
たとえば・・・下記のようなeyeファイル(拡張子はeye)と、
## ## ####### ## ## ######## ######## ## ## ######## ###### ####### ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## ## ## ##
#### ## ## ## ## ## ## ## #### ## ## ## ## #### ## ## ####
## ## ## ## ## ######## ###### ## ###### ###### ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## #### ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## ##
## ####### ####### ## ## ######## ## ######## ###### ####### ## ## ######## ##
下記のように変換するサンプルスクリプトを用意して・・・
#!/usr/bin/perl
#
# hello world
#
use strict;
use warnings;
use IO::File;
&{sub
{
IO::File->new_from_fd(fileno(STDERR),'>')->print("Hello,World\n");
}}(@ARGV);
下記変換スクリプトで上記ファイルを処理してやると・・・
#!/usr/bin/perl
use strict;
use warnings;
use Acme::EyeDrops qw/sightly/;
#Startup code
&{sub{
my $command =
{
Regex => 0,
EyeDir => eyeファイルが置かれているディレクトリパス
Shape => 変換に使用するeyeファイルのベース名
SourceFile => 変換するPerlファイル
};
print sightly($command);
}}(@ARGV);
↓のような感じに変換される。。。これでちゃーーーーんとPerlスクリプトとして動くんだ!
用途は分からんけど・・・(笑) もう嫌がらせの域かと。 実際、忙しい時に、こんなファイルを見せられたら発狂するな(^^;;;
ドキュメントをよく読んでないので分かりませんが、変換後のソースを元に戻す方法あるのかな~?
遠くから見ると、文字に見えてきませんか?(^^;;;
eval eval '"'.
(( (( '#')))) .+ (( ('!'))). '/'.('[' ^+ (( '.'))).( ('[')^ "\(").( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '[' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) )))) ^+ (( ')')
)) .+ (( (( (( '/'))))) ).('`' |+ '"').( ('`')| (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( ')') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
). (('`')| ('.')). (( (( '/')))). +( '['^'+') .('`'| "\%").( (( (( '['))))^ ((
(( (( ')')))) )) ). ('`'|',' ).("\!"^ (( (( '+'))))) .('['^ "\.").( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '[' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) )))) ^+ (( '(')
)) .( (( (( (( '`'))))) )|'%') .( ('{')^ '[').( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '[') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
^+ "\(").( '['^'/' ). +( '['^')') .( '`'|')') .('`'| "\#").( (( (( '['))))^ ((
(( (( '/')))) )) ). ';'.('!' ^"\+").( (( (( '['))))^ '.').( '['^'(' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '`' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) |'%' ). +( '{'^
(( (( (( (( (( '['))))) )))))) .( ('[')^ ',').( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '`') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
|+ "\!").( '['^')' ). +( '`'|'.') .( '`'|')') .('`'| "\.").( (( (( '`'))))| ((
(( (( "'")))) )) ). ('['^'(' )."\;".( (( (( '!'))))^ '+').( '['^'.' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '[' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) ^'(' ). +( '`'|
(( (( (( (( (( '%'))))) )))))) .( ('{')^ '[').( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '`') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
^+ "\)").( '`'^'/' ). (( (':'))). (( "\:")).( ('`')^ "\&").( (( (( '`'))))| ((
(( (( ')')))) )) ). ('`'|',' ).("\`"| (( (( '%'))))) .';'.( '!'^'+' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '!' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) ^'+' ). (( '&')
). (( (( (( (( '\\')))) )))).+ (( '{')). ("\["^ (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '(') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
). (('[')^ "\.").( (( (( '`'))))| (( '"'))).( ('!')^ ('+')). (( (( '\\')))) .+
(( (( '{')))) .( (( ('!')))^ ('+')).( (( (( '{'))))^ '[').( '{'^'[' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '`' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) ^')' ). +( '`'^
(( (( (( (( (( '/'))))) )))))) .+ (':'). "\:".( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '`') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
^+ "\&").( '`'|')' ). +( '`'|',') .( '`'|'%') ."\-". ('>').( (( (( '`'))))| ((
(( (( '.')))) )) ). ('`'|'%' ).("\["^ (( (( ','))))) .'_'.( '`'|'&' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '[' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) ^')' ). +( '`'|
(( (( (( (( (( '/'))))) )))))) .( ('`')| "\-"). (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '_') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
.( '`'|'&' ).('`'| (( (( '$'))))) .+ '('.('`' |'&'). (('`')| (( (( ')'))))) .(
(( (( '`')))) |+ (( ','))).( '`'|'%') .( (( ('`')))| '.').( '`'|'/' ). (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '(' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) )).( (( (( '{')
)) )^ (( (( (( '('))))) )).''. +( ('{')^ '/').( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '`') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
^+ "\$").( '`'^'%' ). +( '{'^')') .( '{'^')') ."\)". ','."'" .+ (( ('>'))). ((
(( (( "'")))) )) .+ ')'.'-'. '>'.('[' ^+ (( '+'))).( ('[')^ "\)").( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '`' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) )))) |+ (( ')')
)) .( (( (( (( '`'))))) )|'.') .( ('[')^ "\/"). (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '(') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
.+ ('\\'). ('"').( (( (( '`'))))^ (( '('))).( ('`')| "\%").( (( (( '`'))))| ((
(( (( ',')))) )) ). ('`'|',' ).("\`"| (( (( '/'))))) .','.( '{'^',' ). +( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '`' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) |'/' ). +( '['^
(( (( (( (( (( ')'))))) )))))) .( ('`')| ',').( (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '`') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
|+ ('$')). ('\\'). (( (( '\\')))) .( '`'|'.') .'\\'. '"'.')' .+ (( "\;")).( ((
(( (( '!')))) )) ^+ ('+')).( '{'^'[') .( (( ('{')))^ '[').( '!'^'+' ). (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( ((( (( (( (( ((
'\\' )) )) )) )) )) )) )) )))) )) )) )) )) )))) )) )) ))))
)) )) )) )) )) ))).'}'. '\\'.+ (( '}')). ('('). (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '\\' )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
). ('@').( '`'^'!' ). +( '{'^')') .( '`'^"'") .('{'^ ('-')). (( (( ')')))). ((
(( (( ';')))) )) .( '!'^'+') .(('!')^ (( (( '+'))))) ."\""; $:='.'^ (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( '~' )) )) )) ))
)))) )) )) )) )) )) )) )) )))) )) )) )) )) )))) ;( $~ )=((
(( (( (( (( (( '@'))))) )))))) )| '(';$^ ="\)"^ (( (( (( (( (( (( ((
(( (( (( (( (( (( (( (( (( (( (( (( (( (( '[') )) ))
)) )) )) )) )) )) )) )) )) )) )) )) )) )) )) ))) )) ))
;( $/)='`' |'.';$, =( (( "\(")))^ (( '}'));$\ ="\`"| '!';#;# ;# ;# ;#;#;#;# ;#
Recent Comments