LoginSignup
2
0

More than 1 year has passed since last update.

細切れになったQRを頑張って読み解くツールを作った話

Posted at

この投稿はUDHI-LAB++; Advent Calender 2022 7日目の記事です

なんで?

CTFを授業で取り扱っていた際に新しい問題の作成に悩み、たどり着いたのがQRコードを細切れにして解読するお話でした。
割と苦行なのですが、実際やってみると絶対読めないように思えるQRコードも頑張れば解読できることが楽しくなっていきます。(白目)
(QRを読むためだけの知識のため、浅いところが多いです…)

ここから大量に細切れにされたQRコードが何度か出てきます。
気持ち悪くなったらすみません。

本題

今回の問題はこちらです
4.png 12.png 9.png 20.png 19.png 31.png 24.png 27.png 59.png 62.png 63.png 68.png 69.png 71.png 77.png 84.png 86.png 88.png 91.png 94.png 96.png 97.png 100.png 38.png 39.png 46.png 48.png 51.png 52.png
計29枚の画像ファイルになります。

ここからは別のQRでまずは僕が解析によく使っているQRコードの決まりを説明していきます。
一番目立つところから行くとファインダパターン
左上、左下、右上に配置されている三つです
QR_644850_find.png
次にアライメントパターン
右下中央寄りに配置されています
QR_644850_araiment.png
そしてタイミングパターン
規則的に並んでいるやつです
QR_644850_timing.png
最後にフォーマット情報
これは左下から右上と左上のパターンが同じになるので一番助けられます
QR_644850_format.png

この知識を前提として
まずは僕の作ったツールに29x29分打ち込んでいきます。
image.png
そうしたら、明らかなファインダパターンから揃えていきます。
image.png
その時点でここまで確定し、ほかも結構絞れます
そしてアライメントパターンとフォーマット情報から解読を進めていきます
image.png
右側のファインダパターンの間は2分の1なので両方試して埋めてしまいます
image.png
なんだか答えが見えてきましたね…
ここからはタイミングパターンとアライメントパターンを見て埋めていきます
image.png
と、後半は総当たり気味ですが、こんな風に解読することができました!!

最後に

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

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0