picoCTF 2021 tunn3l v1s10n Writeup


何度,心が折れても,あきらめずに粘り強く頑張った結果解けた問題なので,うれしさのあまり Writeup を残す。やったぜ!!!

tunn3l v1s10n

Category: Forensics
Description:
We found this file. Recover the flag.
Hints:
1. Weird that it won't display right...

Solution:
fileコマンドでファイルの種類を確認

$ file tunn3l_v1s10n
tunn3l_v1s10n: data

バイナリエディタでは?

ヘッダのシグネチャ的には,BMなのでビットマップだが。

ビットマップか否か検証していく。
まずはサイズから



ビンゴ! ビットマップの可能性大

とりあえず拡張子をbmpにしてみる

やっぱダメよね

検証を続ける
予約領域1
予約領域2

0x0000 0x0000 なのでOK!

ファイル先頭から画像データまでのオフセット

0xD0BA
ちょっと遠いけど,どうせピクセル配列の区別つかないから,ひとまず置いとく。

情報ヘッダサイズ

0xD0BA
これは明らかにおかしい
なぜなら 

情報ヘッダサイズ = ファイル先頭から画像データまでのオフセット - 0xE

でなければならないから
しかも0xD0BAは大きすぎる

40 (0x28)に変更してみる

プレビューは?

なんか見えた!


フラグっぽいのがあるので拡大

残念,ハズレ

なんか横に長すぎるので高さを変更してみる。
pngみたいにCRCは無いので,ひたすら試行錯誤。



0x46e = 1134ピクセル


4:3でいってみる
1134/4*3=849 (0x351)


ダメだ。プレビューできなくなった。

試行錯誤省略

0x340 で成功


あー、ビールが美味いわ。