Category: Analysis-others
Points: 100

Please fix the PDF file for me.

Link
Please type in the flag in the 'TMCTF{<flag>}' format.

Please replace <flag> with the actual flag you would like to submit.
Example: If your flag is abc, then please type in TMCTF{abc}.
PDFファイルが破損していて表示することができません。
以下のサイトでPDFファイルの形式を確認しながら、破損している部分を修復します。
http://www.kobu.com/docs/pdf/pdfxhand.htm

まず、ID13のストリームオブジェクトに辞書(<< ... >>)がありません。また、ID14とID19のオブジェクトが参照されていません。
ID13のストリームデータ(stream~endstream間)は11991バイトあります。ID14の値が11991なので、ID13の辞書に「/Length 14 0 R」を参照で入れます。次に、ID19の辞書がID17と似ています。ID11の辞書をID13にも適用して、/Lengthを12→14、/SMaskを17→19としてみます。次のようになります。
<< /Length 14 0 R /Type /XObject /Subtype /Image /Width 305 /Height 50 /ColorSpace
16 0 R /Intent /Perceptual /SMask 19 0 R /BitsPerComponent 8 /Filter /FlateDecode   
>>
これを、ID13の辞書として追記してファイルを保存し、表示してみます。
no title
PDFファイルを表示できるようになりました。しかし、フラグらしきものは読み取れません。
あとは、調整できるとすると画像の幅、高さくらいになります。試行錯誤の結果、/Widthを1220にすると、下図の通りフラグが読める状態になりました。
<< /Length 14 0 R /Type /XObject /Subtype /Image /Width 1220 /Height 50 /ColorSpace
16 0 R /Intent /Perceptual /SMask 19 0 R /BitsPerComponent 8 /Filter /FlateDecode   
>>
1
したがって、フラグは、
TMCTF{There is always light behind the clouds.}
です。

PDF構造解説
John Whitington
オライリージャパン
2012-05-25