From c0c73379890f1a4ee6ee07b1aee188c33ef66ab0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 2 Apr 2025 00:11:46 +0900 Subject: feat(blog/nuldoc): dynamically join nested section ids --- .../content/posts/2025-01-08/phperkaigi-2023-tokens-q1.ndoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'vhosts/blog/content/posts/2025-01-08') diff --git a/vhosts/blog/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.ndoc b/vhosts/blog/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.ndoc index 37345849..ede3fdfb 100644 --- a/vhosts/blog/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.ndoc +++ b/vhosts/blog/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.ndoc @@ -70,7 +70,7 @@ remark = "読みやすさのため一部の文言を調整"
解説 -
+
画像として解釈する

まずは素直に画像として見てみよう。 @@ -89,7 +89,7 @@ remark = "読みやすさのため一部の文言を調整" 他の PHPer トークンの中から適切な1つを見つけだし、「パスワード」として渡すことで答えとなる PHPer トークンが得られるというわけだ。

-
+
パスワード

不正なパスワードを使って実行してみると、次のようなエラーメッセージが表示される。 @@ -115,7 +115,7 @@ remark = "読みやすさのため一部の文言を調整" これは私のミスである。

-
+
PNG ステガノグラフィ

QR コードも言っているように、このファイルは PNG 画像であるにもかかわらず PHP で実行することができる。なぜこのようなことが可能なのか。 @@ -185,7 +185,7 @@ remark = "読みやすさのため一部の文言を調整" なお、このように PNG 画像などに本来のデータとは異なる別のデータを隠すことを「ステガノグラフィ」(Wikipedia「ステガノグラフィー」) と呼ぶ。

-
+
実行される PHP プログラム

画像の正体がわかったところで、画像に隠されていた PHP プログラムについて見ていこう。 @@ -318,7 +318,7 @@ remark = "読みやすさのため一部の文言を調整" QR コード中央のカラフルな部分が Piet の命令になっている。

-
+
Piet のソースコード

さて、Piet でどのようなコードが書かれて (いや、描かれて) いるのかを解説したいところだが、今の私にはできそうにない。 @@ -377,7 +377,7 @@ remark = "読みやすさのため一部の文言を調整" そういうわけでこの Piet インタプリタは完全な Piet インタプリタではなく、「403 Forbidden」というテキストを絶対に出力できない。

-
+
その他小ネタ

ここまでで問題の核心部分は説明し終えたので、ここからは残った小ネタを紹介しておく。 -- cgit v1.2.3-70-g09d2