セキュリティ&プログラミングキャンプ2011
http://www.ipa.go.jp/jinzai/renkei/spcamp2011
行ってきましたよっと。
期待していた人はたぶん0%だと思うのですが、
今更ながら感想文を。
2011/09/27追記:
期限切れと言うことで、 人間が読める文章に直したものを再公開しました。
http://d.hatena.ne.jp/mayahu32/20110816/1313505335
こんな人がいるので、ちょっとだけがんばってみます。
解けなくても、後日ちゃんとしたやつを出しますのでそれを見て頂ければ。
それでですね、
セプキャン2011感想文 – 西尾泰和のはてなダイアリー
( http://d.hatena.ne.jp/nishiohirokazu/20110819/1313756054 )
を参照するに、西尾さんいはく、
みんながバイナリ*1とかバイナリ*2とかUCAS*3とかで書いて読むのに苦労したから、
僕はちゃんとASCIIで書きましたよ!
ということで、
ならば私は画像で出してみます。
ということで、そんなに難しいことしてないはずなので、
がんばって解いてみてくださいね-!
2011/09/20 追記:
画像データをバイナリとして扱っている人が多いようですが、
こっちはむしろ画像データとして扱ってます。はい。
具体的には。
exist "data.dat" size = strsize sdim in,94*94 bload "data.dat",in,94*94 screen 0,94,94 cnt2 = 0 repeat 94 y = cnt repeat 94 v = peek(in,cnt2) : cnt2++ color v,v,v if cnt2 > size : color 0,0,0 pset cnt,y loop loop bmpsave "pics.bmp"
HSPで、こんなコード書いて画像化してます。はい。バイナリ関係ないですね。
(pset は指定場所に color 命令でしていた色の点を描画する命令。)
(bmpsave は画面を bmp ファイルで保存する命令。)
C# とかで、画像読み込んで、1点ずつ読み出して、データに起こしてみるとか、
C で配列作って、がっつり読み込んでデータに起こしてみるとか。その辺でも出てきます。
http://mimumimu.net/software/blogup/spcamp_2011.hint.dat
ということで、画像からデータに復元した時点のデータを公開しておきます。
であであ。
2011/09/27 追記:
期限切れってことで、テキスト版公開しました。
なんとかヒント見ずに感想文読めました。
以下、ネタバレを含む感想を書かせていただきます。
画像は左上から右下へ1 pixelを1 byteにするんだと考えデコードしてみると、
文字列部分が逆さになっていたので、右下から左上にデータが入ってるんだ!と
勝手に納得してましたが、追記を見ると元のデータから逆だったんですね・・。
“MZ”でPEファイルだと騙されそうになりました(笑)。
データの最後のほうに”PK”の文字が見えたので、対応するlocal file headerの
シグネチャを探しましたが見つからなかったのでおかしいことに気づきました。
ひらがなのほうは最初さっぱりわからなかったんですが、
とりあえず使われてる文字が何種類あるか調べてみると65あったので、
そこであまり根拠にはならないのに「これはbase64!?」と閃きました。
で、文書の最後を見るとそこ以外にない「こ」の文字が2つ続いていたので、
やはりbase64だと確信できて、「こ」 → 「=」の関係から全体をデコードすることができました。
「”ここ”がポイントだよ!」という大きなヒントになってたんですね!!
とても楽しかったです。ありがとうございます。
おめでとうございます。みむらです。
楽しんで頂けたようで何よりですw
私自身、適当にささささーっと手当たり次第に処理を掛けていったような感じですので、
むしろ、base64 と気づかれる理由に私の方が感動してしまうような感じで、
なんともなんとも。
でも、ありがとうございました!