この投稿はUDHI-LAB++; Advent Calender 2022 7日目の記事です
なんで?
CTFを授業で取り扱っていた際に新しい問題の作成に悩み、たどり着いたのがQRコードを細切れにして解読するお話でした。
割と苦行なのですが、実際やってみると絶対読めないように思えるQRコードも頑張れば解読できることが楽しくなっていきます。(白目)
(QRを読むためだけの知識のため、浅いところが多いです…)
ここから大量に細切れにされたQRコードが何度か出てきます。
気持ち悪くなったらすみません。
本題
ここからは別のQRでまずは僕が解析によく使っているQRコードの決まりを説明していきます。
一番目立つところから行くとファインダパターン
左上、左下、右上に配置されている三つです

次にアライメントパターン
右下中央寄りに配置されています

そしてタイミングパターン
規則的に並んでいるやつです

最後にフォーマット情報
これは左下から右上と左上のパターンが同じになるので一番助けられます

この知識を前提として
まずは僕の作ったツールに29x29分打ち込んでいきます。

そうしたら、明らかなファインダパターンから揃えていきます。

その時点でここまで確定し、ほかも結構絞れます
そしてアライメントパターンとフォーマット情報から解読を進めていきます

右側のファインダパターンの間は2分の1なので両方試して埋めてしまいます

なんだか答えが見えてきましたね…
ここからはタイミングパターンとアライメントパターンを見て埋めていきます

と、後半は総当たり気味ですが、こんな風に解読することができました!!
最後に
これでもしQRコードをシュレッダーにかけてしまったとしても読めますね!!!
今回はツールを作った話をする予定が問題の解き方になってしまいました…
もし細切れのQRコードに出会ったときはこのツールで解読してあげてください()




























