Windows の P2P ファイル共有ソフトとして色々と有名な Winny。そのキャッシュファイルを、Perl を使ってゴニョゴニョしようという試みです。現在のところ、キャッシュファイル内のファイル情報の取得と、暗号化されたファイル内容を展開できるところまで進んでいます。
残すは肝心の通信部分ですが、そこが実現できれば Pure Perl な Winny クライアントが作れたりしませんかね? Winny のソースコードは公開されていませんが、大体の概念については、Winny 作者本人が書籍化されているのでなんとかなるかも?
#!/usr/bin/perl use File::Winny::Cache; # キャッシュファイルを読込む my $cache = File::Winny::Cache->new ({ file => '%9a394b3b63618cc3a924f0ef410373f7', }); # キャッシュファイルの情報を解析し表示する use Data::Dumper; print Dumper ($cache->info); # 完全キャッシュだった場合には変換を試みる $cache->convert_to ($cache->{name}) if $cache->is_complete;