LoginSignup
3
2

More than 1 year has passed since last update.

TsukuCTFのHardwareを解いて,リア充を吹き飛ばす.

Last updated at Posted at 2022-12-09

yoshi.jpg

どうも,にゃんぱすー.日本陰キャ協会 会員のざきまつです.

本記事は,日本陰キャ協会 Advent Calendar 2022の10日目の記事になります.
日本陰キャ協会のカレンダー - Qiita Advent Calendar 2022

クリスマスが近づいてきました.街は完全にクリスマスムード,綺麗なイルミネーションとか美味しいものがあふれ始めています.
ただ,そういうところにリア充がはびこるので,気晴らしに爆弾処理したいと思います.
処理失敗しても,周りにいるリア充が爆散するだけなのでどちらにせよハッピーですね(なわけ).

クリスマス,皆さんどう過ごしますか?
家族と?恋人と?友達と?ペットと?いいですね.
僕は最近別れたので,研究とともに過ごす予定です.

はじめに

だいぶ前にTsukuCTF2022に参加したのですが,時間が足りずHardwareが解けませんでした.ロボット競技で回路班に所属していた身としては,とても悔しいお気持ち.(しかも,作問者がチームメイトだった)
ただ,回路についてあまり知識がない&回路を読めないという,回路班としてはあってはならない状態なので,勉強がてら解いていきたいと思います.

ついでに,リア充も爆破できれば爆破したいと思います.
あ,いやこれが本来の目的ではないですよ?ちゃんと回路の勉強しながら解くのが目的です.

問題(DefuseBomb)

つくしくんは疑似時限爆弾解除競技の訓練として、3つの時限爆弾に関するそれぞれのデータ(DefBom1,DefBom2は回路図、DefBom3は基板製造データ)をもとに、3つそれぞれの爆弾解除を行う。各時限爆弾はタイマー(limit_timer)がON状態になったとき、爆弾(bomb)に電流が流れて爆発する。
切断可能な線はデータ内で示されており、DefBom1では1から6の番号が振られたハサミ、DefBom2 では1から5の番号が振られたハサミ, DefBom3 では1から5の番号が振られた矢印である。示された切断可能な線のうち、1つの線を切れば limit_timer が ON 状態になっても爆発せず解除に成功する。しかし、残りの線は切っても limit_timer が ON 状態になる、もしくは切断した瞬間に爆発する。

フラグ形式はTsukuCTF22{ここにDefbom1からDefbom3において切断した番号を順に書く}といった形です。例として、切断した線の番号が DefBom1 では"3"、DefBom2"では"1"、DefBom3 では"5"であった場合フラグ形式はTsukuCTF22{315}となります。

ほうほうほう,つまりリア充を爆発四散させたいわけですね(違う).
しかたない,僕が全世界のリア充を救ってみせましょう.
救った暁には,5000兆円の送金をお待ちしています.

では、それぞれの基板について見ていきます.

DefBomb1

以下の回路図は,Defbomb1の回路図になります.
DefBom1.jpg
U1のTC74HC08AP,U2のTC74HC02APは汎用ロジックICです.08APはANDゲート,02APはNORゲートとなっています.
それぞれのデータシートを見ると,仕様詳細を知ることができます.

東芝CMOSデジタル集積回路 シリコン モノリシック TC74HC08AP データシート
東芝CMOSデジタル集積回路 シリコン モノリシック TC74HC02AP データシート

ただ,仕様書を見ながらやるのも大変なので,draw.ioを使って論理回路を書きおこします.
bomb.png
爆弾であるU2の直前がNORゲートになっています.このNORゲートの入力・出力の関係を以下の表にまとめています.

U3 2番の入力 U3 3番の入力 U3 1番の出力
0 0 1
1 1 0
0 1 0
1 1 0

これより,U3の2番と3番に入る入力が両方0で無ければ,U2は起動しません.
さて,どこをカットしましょう...個人的にはU2直前のところで無理やり切断して終わりがいいんですけどね.

実は2, 3, 5番のハサミで切断しても,U3の3番は必ず0になります

切断するハサミ U3 5番 U3 6番 U3 4番 U1 2番 U1 1番 U1 3番
5 0 1 0 0 0 0
3 1 1 0 0 0 0
2 1 1 0 0 0 0

下側を切断しても何も変わりません,ならば上側ですね.

切断するハサミ U3 9番 U3 8番 U3 10番 U1 12番 U1 13番 U1 11番
4 0 0 1 1 1 1
2 1 1 0 0 0 0

以上の表から,4番のハサミで切断すればU2は発火せず,スイッチを押してもリア充は爆発しません

どうして僕はリア充を救っているのでしょうか,甚だ疑問ですね.あ,5000兆円のためか.
よかったですね,ひとまずクリスマスは安心してデートできる未来が見えてきましたよ,皆さん.

DefBomb2

次に,Defbomb2の回路図を見ていきます.
DefBom2.jpg

回路図から,この問題ではNチャネルMOSFETを使用していることがわかります.
MOSFETとは,電圧によって電流の通電を制御する,半導体の特性を利用したトランジスタです.
詳しくは,以下のページを見ていただくといいです.とても勉強になります.

MOSFETとは | 半導体製品 | 新電元工業株式会社- Shindengen
MOSFETの構造と動作原理 | 半導体製品 | 新電元工業株式会社- Shindengen

動作速度が速いのは,とてもうれしいですね.

さて,この問題についてですが,紙に書いて考えました.

think_bomb.jpg

1番から順番に切って,それぞれの電圧関係を確認...してたら日が暮れてました.
なので,U1に対して電流が流れなくするための条件について考えていきます.

まず,U1がある大きな抵抗値を持っている&Q7が通電できる場合,U1には電流が流れずにQ7に流れていきます.
つまり,Q7は通電できる必要があります.そうすると,必然的にQ8も通電できる必要が出てきます
Q8が通電不可の場合はQ7も通電不可となり,リア充も僕らもみんな吹き飛びます.

となると,Q8の1番-3番で電位差を発生させるために5番のハサミでカットしてはいけないことがわかります
あるいは,カットした瞬間に導線と溶接or圧着する必要があります.めんどくさそう.

さて,Q8の1番-3番で電位差を発生させるにはどうしたらいいでしょう.え?どうしようもない?
bomb.jpg
stay.jpg

今のままだと,R11の抵抗器のせいでQ8の1番に向けて電流が流れず,Q3とQ4に対して流れてしまいます.
これは,導線と抵抗器が並列に繋がっている場合に,電流は導線側に流れるためです.

つまり,Q3とQ4に電流が流れないようにする必要があります.
はいここで4番のハサミに着目.
4番のハサミで切ると,R2とR3,Q3の1番とQ4の1番がGNDになり,電位差がなくなるため電流が流れなくなります.多分.

また,未来が明るくなりました.皆さん,安心デートまであと一歩です.
僕の未来も照らしてください.

DefBomb3

最後,DefBomb3について見ていきます.
DefBomb3は,間違えてファイル消したと思って相当焦りました(ファイルがもう配布されていない).

ファイル内を覗くと,大量の拡張子ファイルが入っています.
今回は,回路設計などでおなじみの「KiCad」を使って開きました.

Bomb3.png

ここで,DefBomb3ではTC74HC00APが使われていることがわかります.00APは,NANDゲートの様です.

東芝CMOSデジタル集積回路 シリコン モノリシック TC74HC00AP データシート

わかりづらいので,draw.ioを使って論理回路図を描きます.

image.png

この図から,U2 6番の出力が0であるには,4番と5番がそれぞれ1である必要があります.

ここで,1, 4, 5番のハサミどれを切断しても5番の入力は1になるし,切断しなくても1になることが図からわかります.
実は,9番がGNDのため,5番の入力が0になることは絶対にありません.

「いやいやいや,どゆこと?」と思った人は,電気回路or論理回路orメカトロニクスの教科書でNANDについて確認してください.
多分,言ってる意味が一発でわかります.

なので,2, 3番のどちらかを切断すればいいです.
3番のハサミで切断すると4番の入力が0になっちゃうので,2番のハサミで切断すればよいことがわかりますね

おわりに

これで,クリスマスに安心してデートできることが確約されました.
ササっと解除して終わりましょう,博多駅のクリスマスマーケットでホットチョコ飲みたいですし.

いやぁ,外で作業するとめちゃくちゃ凍えるんですよね.
末端冷え性にはつらい作業ですわyブェクショォォォイ

パチンッ(ハサミがずれて1番を切る音)

Demon_Core.jpg

3
2
0

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
3
2