お絵描きチャット - その2

前回のエントリ:http://d.hatena.ne.jp/slayer845/20090724/1248436767
前回お絵かきチャットに自前で用意したPNG画像を読み込ませる方法を書きました。
あれからまた少し調べたのですが、どうやら前回書いたお絵かきチャットでの必須チャンクが入っていれば、tEXtチャンクやsRGBチャンク(Gimp初期状態で弄ると勝手に付いてくる)等の余計なチャンクがくっついていても読み込むようです。
試しに以下のようなデータをバイナリエディタで突っ込んでみました。

00 00 00 49 74 45 58 74 74 65 73 74 64 61 74 61
00 74 65 73 74 64 61 74 61 74 65 73 74 64 61 74
61 74 65 73 74 64 61 74 61 74 65 73 74 64 61 74
61 74 65 73 74 64 61 74 61 74 65 73 74 64 61 74
61 74 65 73 74 64 61 74 61 74 65 73 74 64 61 74
61 50 6C A7 15

tEXtチャンクにキーワードtestdataで、testdata文字列を8個並べたデータです。
こんなあからさまに他意が存在するPNGデータでも、前回書いた必須データが入っていれば読み込んでくれます。
なお、上記tEXtチャンクのCRCが間違っていても読み込みました。
データブロックの長さが正しければお絵描きチャットの動作に関係ないチャンクは完全に無視しているようです。


で、こんなデータくっつけててもOKってどうなのよ?と思い、WireSharkでお絵描きサーバに送信されるPNGデータを調べてみました。
結果は当然と言えば当然だったのですが、お絵描きサーバに送信されるデータは必要最低限のデータのみ送信されていました。
ただし、モノクロ4色以外の色が表示できる所を見るとチャンクが存在するかどうかのみチェックしているようです。
キャラIDやキャラ名ももしかしたらデタラメ書いても送信できるかもしれません。誰得なんでやる気ないですが。


まだ試してはいないのですが、というか試す気もしないのですが、お絵描きサーバはもしかするとマビ蔵からの送信に成りすました余計なデータの付いているPNGを何事も無いかのように受け付けるかもしれません。
その場合どのような防衛手段をサーバに行うべきなのか、私にはさっぱりワカリマセン。


わけわかめ - マビノギお絵描きチャットその3 - 足跡
外部PNG画像取り込みツールはこちら