難読化なのか単なる嫌がらせなのか?

(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 '"'.


((    ((  '#'))))  .+     (( ('!'))).     '/'.('[' ^+    (( '.'))).(  ('[')^    "(").(  ((    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '['   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ))))  ^+ ((         ')')
   ))    .+     (( ((     (( '/')))))     ).('`'      |+    '"').(    ('`')|   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  ')') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ).     (('`')|   ('.')).  ((     ((    '/')))).    +(    '['^'+')  .('`'|    "%").(  ((    (( '['))))^    ((
 
 
((    ((  ')'))))  ))     ). ('`'|','     ).("!"^ ((    (( '+')))))  .('['^    ".").(  ((    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '['   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ))))  ^+ ((         '(')
   ))    .(     (( ((     (( '`')))))     )|'%')      .(    ('{')^    '[').(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '[') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ^+     "(").(   '['^'/'  ).     +(    '['^')')    .(    '`'|')')  .('`'|    "#").(  ((    (( '['))))^    ((
 
 
((    ((  '/'))))  ))     ). ';'.('!'     ^"+").( ((    (( '['))))^  '.').(    '['^'('  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '`'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) |'%'  ). +(         '{'^
   ((    ((     (( ((     (( '[')))))     ))))))      .(    ('[')^    ',').(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '`') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   |+     "!").(   '['^')'  ).     +(    '`'|'.')    .(    '`'|')')  .('`'|    ".").(  ((    (( '`'))))|    ((
 
 
((    ((  "'"))))  ))     ). ('['^'('     ).";".( ((    (( '!'))))^  '+').(    '['^'.'  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '['   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ^'('  ). +(         '`'|
   ((    ((     (( ((     (( '%')))))     ))))))      .(    ('{')^    '[').(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '`') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ^+     ")").(   '`'^'/'  ).     ((    (':'))).    ((    ":")).(  ('`')^    "&").(  ((    (( '`'))))|    ((
 
 
((    ((  ')'))))  ))     ). ('`'|','     ).("`"| ((    (( '%')))))  .';'.(    '!'^'+'  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '!'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ^'+'  ). ((         '&')
   ).    ((     (( ((     (( '\'))))     )))).+      ((    '{')).    ("["^   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '(') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ).     (('[')^   ".").(  ((     ((    '`'))))|    ((    '"'))).(  ('!')^    ('+')).  ((    (( '\'))))    .+
 
 
((    ((  '{'))))  .(     (( ('!')))^     ('+')).( ((    (( '{'))))^  '[').(    '{'^'['  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '`'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ^')'  ). +(         '`'^
   ((    ((     (( ((     (( '/')))))     ))))))      .+    (':').    ":".(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '`') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ^+     "&").(   '`'|')'  ).     +(    '`'|',')    .(    '`'|'%')  ."-".    ('>').(  ((    (( '`'))))|    ((
 
 
((    ((  '.'))))  ))     ). ('`'|'%'     ).("["^ ((    (( ',')))))  .'_'.(    '`'|'&'  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '['   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ^')'  ). +(         '`'|
   ((    ((     (( ((     (( '/')))))     ))))))      .(    ('`')|    "-").   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '_') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   .(     '`'|'&'   ).('`'|  ((     ((    '$')))))    .+    '('.('`'  |'&').    (('`')|  ((    (( ')')))))    .(
 
 
((    ((  '`'))))  |+     (( ','))).(     '`'|'%') .(    (( ('`')))|  '.').(    '`'|'/'  ).    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '('   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) )).(  (( ((         '{')
   ))    )^     (( ((     (( '(')))))     )).''.      +(    ('{')^    '/').(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '`') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ^+     "$").(   '`'^'%'  ).     +(    '{'^')')    .(    '{'^')')  .")".    ','."'"  .+    (( ('>'))).    ((
 
 
((    ((  "'"))))  ))     .+ ')'.'-'.     '>'.('[' ^+    (( '+'))).(  ('[')^    ")").(  ((    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '`'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ))))  |+ ((         ')')
   ))    .(     (( ((     (( '`')))))     )|'.')      .(    ('[')^    "/").   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '(') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   .+     ('\').   ('"').(  ((     ((    '`'))))^    ((    '('))).(  ('`')|    "%").(  ((    (( '`'))))|    ((
 
 
((    ((  ','))))  ))     ). ('`'|','     ).("`"| ((    (( '/')))))  .','.(    '{'^','  ).    +( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '`'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) |'/'  ). +(         '['^
   ((    ((     (( ((     (( ')')))))     ))))))      .(    ('`')|    ',').(   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '`') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   |+     ('$')).   ('\').  ((     ((    '\'))))    .(    '`'|'.')  .'\'.    '"'.')'  .+    (( ";")).(    ((
 
 
((    ((  '!'))))  ))     ^+ ('+')).(     '{'^'[') .(    (( ('{')))^  '[').(    '!'^'+'  ).    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( (((   (( ((        ((  ((
  '\'   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ))))  )) ))         ))))
   ))    ))     )) ))     )) ))).'}'.     '\'.+      ((    '}')).    ('(').   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '\' ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ).     ('@').(   '`'^'!'  ).     +(    '{'^')')    .(    '`'^"'")  .('{'^    ('-')).  ((    (( ')')))).    ((
 
 
((    ((  ';'))))  ))     .( '!'^'+')     .(('!')^ ((    (( '+')))))  .""";    $:='.'^  ((    (( ((       ((    ((
 ((  ((  ((     (( ((     (( ((     ((    ((        ((  ((  ((       ((    ((  ((     (( '~'   )) ))        ))  ))
  ))))   ))     )) ))     )) ))     ))    ))         ))))   ))       ))        ))     )) ))))  ;( $~         )=((
   ((    ((     (( ((     (( '@')))))     ))))))      )|    '(';$^    =")"^   ((     (( (( (( (( ((          ((
   ((    ((     (( ((     (( ((   ((      ((          ((    ((             ((  ((     (( ((  '[') ))          ))
   ))    ))     )) ))     )) ))    ))     ))          ))    ))       ))    ))  ))     )) ))   ))) ))          ))
   ;(     $/)='`'   |'.';$,  =(     ((    "(")))^    ((    '}'));$  ="`"|    '!';#;#  ;#    ;# ;#;#;#;#    ;#