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
2023年4月21日
CPCTFを開催します
noc7t icon noc7t
2021年4月26日
CPCTF2021 作問者writeup by zassou
zassou icon zassou
2021年4月26日
CPCTF2021 作問者writeup by hukuda222
hukuda222 icon hukuda222
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記