SECCON 2014 quals Online 重ねてみよう Writeup
SECCON 2014 quals Onlineに参加しました。今回はビギナーでも解ける問題をたくさん出題されるということで、少しは貢献できるかな?と思いましたが、人権消滅しかけてます。
チームはwasamusumeです。今回もチームメンバーの皆さんがスパッと解決していました。すごい。
amidaも中途半端だし、他の問題はメンバーさんが強すぎてタイミングなかったので本当は呼吸Writeupになりそうだったんですが、スキマを縫ってFlag提出したものがあるので書いておこうと思います。
Prog100
重ねてみよう
ジャンル:プログラミング
点数:100
問題文:afterimage.gif
afterimage.gifがもらえるので、開くとGIFアニメのよう。
どう見てもQRコードなので、Pythonでスクリプト書きました。
# -*- coding: utf-8 -*- from PIL import Image X = 164 Y = 164 canvas = Image.new("RGB", (X, Y), (255, 255, 255)) for i in range(1, 50): print("img/img_{0:02d}.png".format(i)) base = Image.open("./img/img_{0:02d}.png".format(i)) pixels = base.load() for x in range(X): for y in range(Y): if pixels[x, y] == 1: canvas.putpixel((x, y), (0,0,0)) canvas.save('ans.png', 'PNG')
GIFアニメを適当なツール(今回はGiam)でつるっと抽出して、img/ディレクトリに保存。
PILライブラリを使って一個一個開きつつ、白い部分だけキャンバスに転写していきます。(上のスクリプトは白い部分を黒にして転写しています)
前回の記事や他のCTFで予習してたので調度良かった。
出力がこれです。読み取ると
FLAG{Many dot makes a QR code}
がでました。
今回はいくつかの問題しか手を付けていないので、復習しておかなきゃなと思ってます。
とくにあみだくじはめちゃくちゃ悔しいのでリベンジしておきます!解けたら記事にしようかな。