qif2.rb
http://d.hatena.ne.jp/ku-ma-me/20091116/p1
なんか qng 見た時に GIF でやってみるかなーと思ってたんだけど mame さんがやってしまったので、パクリです。
http://shinh.skr.jp/obf/qif2.gif
eval(q=%(require'zlib';c='eJxNUkFv40QUngZLa43Q1 oceOHBwJ3Vix4ljd9uqIZ5sW9Hudg9ld4+4VrdJvaohieqk bJ1kg4IlxK6FxIUTWnGIEIJw4cSpQuIfcObILyg9wR4o740 DIlLyzfvmzfe+9172uFYhyvdfPn5JiJwQ8ZFy24q0LBFlR5 G2VYWQidqYXxGiEpJsKXJuGw7FdKb3gEuW5eQMsEjflF4L/ FxF/peH37yHzxeTSxG/8ckl5k+qipRsYV76Srwvpl9vPcnE J8iTPyeLCMnDpWIKWE0v9WvMS1SRf5BO7/8udF359RwTcf+ tPoRYT3/W8d1nqvA1ycuJegV4f2o/QB5C8U7/7acZxJPyD7 MPvhI+pkK/ms710unpcF4/FfqvsI/JF6CrijoiH3DpU4y/m 5V2H2H8WNZSwb8t8qqKLOZCzpIi6Kny9VT0Q2JVhjhR4yn6 hvvpIuBt6Q8YfBbrw9wtkY/1c09EXbJgS7Ch24q0v7S3T8h bSeaHkF9nsxniVZaP73vz+FqVoR7oYWM/rma7jtXiFS48Uq Qaxi/mPl6w3WWBswePBC7tvPz3PncL9iPl/iKkYn3UPTtuf aizqMQMesKZzUqrNQe/NOYVhw74HRpxFjw7busR13RmRiYz jHpzoPdPw+6pQRltcX73sHt3YHLHeUfvcqYVdcO0qvmRVwJ By2I15pcYG9e5oLaRej+jBHGMxDAjmBV2T4JYbRmFwoZtnY edoD96Hj4/8WJtbbO0YTp2JdQ2THSpD8ywumH4ULHPtD2v6 3uhP744DduB2uKRF4Mjn3b4CFzwRsjtMnPg4IyhrXXaxtZM zg5ZPYjD8zE9Oto9ePfoCDpqwiBsh1H9gjP8dd0TUKYh6Bm ZPMaFQsdr8QsTzmXH92nTdXWm2flRe9xkWse78A2rFzwLev 2A6pDqcxwRbZt80Gi0jfCpOnDX7Nra/yShstc0mQPFTdxFz bdwP6xZYuDZsTcpSET/ba0FW/MGvulkChGcRUsxg9lUIqsf DgMD93dvf2+zdpxfyC+QBbL8N63v7N7bPxid9cLu+SETSyV l/H9gygTw5uYmB51HrrtSEDJ4AHcrxcxt1Ro55dX19XG1wz 9u0pWG66JGnVGcpWr/A62MIAQ='.unpack 'm';include( Zlib);eval(Inflate.inflate(c.at 0))));by(shinh)
いいところはリバーシブルなところ。出力された gif を ruby なり perl なりで実行すると元の rb が出てくるです。
% diff =(perl =(ruby1.9 =(ruby qif2.gif))) qif2.rb %
あとはちゃんと LZW 圧縮してみたりとか gimp で開けるとかがいいところ。 qif.gif は詳しく見てないけど、なんかどっか壊れてるんとちゃうかな。
わるいところとしてはコードサイズがでかいのと base64 文字列でしか無いところ。コードサイズはたぶんフォントの持ち方とか色々工夫したけど、結局 zlib かましたら変化無かった。