2009年10月11日日曜日

perlの難読化モジュールAcme::EyeDrops

perlは記号だけでプログラミングが可能です。どうやるかはevalと論理演算を駆使すればできるらしい・・・
例えば・・・
「H」という文字列を作りたい場合は
 `←バッククォート 16進数では60
(←括弧 16進数では28
をXORですると・・・
16進数の48になります。。。
こんな感じでプログラミングしていくみたいです
print "`" ^ "(","\n";
↑をやればHと表示されるはず

参考記事
http://d.hatena.ne.jp/shinichiro_h/20061107

そんで、本題Acme::EyeDropsについて

これは上記のテクニックを使ってプログラムを難読化してくれるモジュールみたい
さっそく試す
1.ActivePerlならPPMでAcme-EyeDropsを検索してインストール
2.適当にperlソースを書く(ここではhoge.plとする)
3.以下のようにして吐き出させる
#!/usr/bin/perl
use Acme::EyeDrops qw(sightly);
print sightly( { Shape       => 'camel',
SourceFile  => 'hoge.pl' ,
Compact => 1
} );
このモジュールのすごいところはバイナリファイルだってAA化できちゃうってこと
詳しくはこちら

好きなShapeは
map_japan
map_world3
mongers
music
writing_perl
tpr
camel
あたり

0 件のコメント: