更新日時で差をつけろ

もはや更新日時でしか差を付けられない

3DSCTFに参加した

CombKansaiを挟んでHarekazeから3DSCTFに参加しました。
ForensicとMiscを1問ずつ解きました。GIFと仲良くなった。
ページが凝っていたけど、点数配分が全部500(からのsolved数による減点)であんまり良くないと思った。

Microscope (Misc 487)

フレームを100000以上もつ単色のアニメーションGIFが渡される。微妙に色がことなる黄色と緑が交互に来ているようだ。
黄色や緑が連続する回数がモールス信号みたいになっているのかと思い、色が連続する回数を調べたがバラバラだった。
Microscope(顕微鏡)という名前なので、「ある画像を顕微鏡で見ていった部分部分をフレームにしているのでは?」と考えた。それなら1フレームずつ切り出して結合すればいいのだが、フレームを何枚横につなげるのかがわからない。横幅を1〜100000まで試すと時間がかかるので、黄色と緑を., Xに2値化して文字列にすることにした。こうすれば文字列を表示してエディタのウィンドウをリサイズすれば好きな位置で自動改行が試せる。実にアナログ。

GIFの仕様を見ながらこつこつ組んだ。

hex = File.binread('gif.gif').unpack("H*")[0]
 
splitted = hex.split "21f904" # header for each frame
header = splitted.shift # remove GIF Header
ans = ""
splitted.each do |fr| # for each frame
    lct = fr.index('32003200')
    if fr[lct+8] == '8' # using Local Color Table
        if fr[lct+10..lct+11].to_i(16) < 128 # Red value < 128 -> green
            ans += "."
        else
            ans += "X" # yellow
        end
    else # not using local color table -> yellow?
        ans += "X"
    end
end
 
puts ans

これで出力させて、端末のフォントサイズを小さくしいい感じにリサイズすると...?
Gyazo

読めなかったので、GIMPで修正。
Gyazo

これをスキャンするとFLAGが出てくる。
3DS{s0_y0u_kn0w_yur_g1fs}

What The Hex (Forensic 474)

よくわからないバイナリデータが渡される。バイナリエディタで見てみると、a98FIGという文字列が。ここをGIF89aに書き換えてみる。

こんな画像が見える。[]でくくられていることから分かるとおり、これはFLAGではなかった。
Gyazo

他に何かあるかと思い、Global Color Tableの後のnullで埋まった部分を消してみたりした(画像では余計な部分まで選択してしまっているが)。
Gyazo

するとこうなる。でもFLAGじゃない。ファイルを壊しただけだった。
Gyazo

うーんと思ってじっくり読んでみるとIHDRGNPという文字が。このファイルはJPEGとかPNGとかGIFをいっぱいくっつけてシグネチャの部分を書き換えたものだとわかる。また、テキストとして3DS[dddddd] という文字列が多数入っているのでその中に混じってないか探してみる。

~/c/3/whatthehex $ strings binary.bin | grep '3DS{'
3DS{n0_t3ss3r4ct_7h15_71m3}

FLAGが出た。

せっかくなのでsedの練習も兼ねてa98FIGとなったりGNPみたいにひっくり返っているシグネチャをもとにもどしてforemostに切り出させてみる(手抜き)。

$ sed -e 's/\(..\)/\1\ /g' -e 's/61\ 39\ 38\ 46\ 49\ 47\ /47\ 49\ 46\ 38\ 39\ 61\ /g' -e 's/47\ 4e\ 50\ /50\ 4e\ 47\ /g' -e 's/\ //g' binhex.txt > changed-signature.txt
$ cat changed-signature.txt | tr -d '\n' | xxd -r -p > changed-signature.bin
$ foremost changed-signature.bin 

こんな画像が大量に入ってた。
Gyazo
https://gyazo.com/b73cc54f8d9439605ed57a7ab94a3eac