feature image

2025年11月18日 | ブログ記事

traPavilion CTF解説 TeX編

どうも!@Suimaです。今回は、traPavilionで出題したTeXの問題の解説をしていきます

問題文

以下のコードの出力に応じて、スタンプを押してください。実行コマンドはpdftex -halt-on-error filename です
1. BOX
2. CRT
3. BOT
4. ANT
5. そのほか

\uccode`4=`^^41
\uccode`7=`^^4e
\uccode`5=`^^53
\uccode`A=`B
\uccode`N=`O
\uccode`S=`X
\uccode`B=`C
\uccode`O=`Q
\uccode`X=`T
\uppercase{\uppercase{47\uppercase5}}
\end

解説

まあ普通に展開をしていけば良いですね。uccodeの部分については、説明を省略します。最後の行の前の行が問題です。

  1. 最も左の`\uppercase`が展開されます。
    残りは`\uppercase{AN\uppercaseS}`となります(2つめの`\uppercase`と`S`は別のトークンとして処理されています)
  2. 次の`\uppercase`が展開されます。
    残りは`BO\uppercaseX`となります(`\uppercase`と`X`は別のトークンです)
  3. 次の`\upppercase`を展開しようとしますが、`\uppercase`は直後に`{`を期待しているため、エラーが発生します
  4. `-halt-on-error`オプションがあるため、このエラーはFATALとなり、処理が終了します。PDF出力は存在しません。そのほかの出力も選択肢には合致しないため、答えは5. のそのほかとなります。

反省

ちょっと意地悪くしようと思ったら、やや議論の余地がある上、あまり咄嗟に解けるものではなくなってしまいました。LLMが解ければ良かったのですが、私が試した限り全てのLLMは5. とはしなかったため、難しい…

と、今回のブログは短めですが、この辺で…

Suima icon
この記事を書いた人
Suima

LaTeXぺちぺち

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2021年8月12日
CPCTFを支えたWebshell
mazrean icon mazrean
2022年3月29日
課題・レポートの作成、何使う?【新歓ブログリレー2022 21日目】
aya_se icon aya_se
2019年4月22日
アセンブリを読んでみよう【新歓ブログリレー2019 45日目】
eiya icon eiya
2025年12月21日
MacでもPwnしたい!
akimo icon akimo
2023年4月21日
CPCTFを開催します
noc7t icon noc7t
2021年4月26日
CPCTF2021 作問者writeup by zassou
zassou icon zassou
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記