アメリカのデトロイトに行ってきた(Automotive CTF 2024)

海外旅行はこのとき以来の9年ぶり。

kusano-k.hatenablog.com

飛行機もこのときが最後だったのではなかろうか。 アメリカは10年以上前に乗り継ぎで1回だけ入国したことがある。 そもそも実家への帰省以外で東京を出るのもいつぶりだろう。

そんなに引きこもっているのになぜアメリカかというと、これで旅費と滞在費が出るから。

qiita.com

この機会を逃したらデトロイトに行くことなんて無いだろうなと思って行くことにした。

パスポート

海外旅行は久しく行っていないけれど、パスポートは更新していた。 たまに海外のサイトを使うと身分証明証として要求される。 身分証明証として運転しないのに運転免許証を取るという話はマイナンバーカードで解決しつつある。 パスポートも何とかならないものか。 いや、パスポートの主目的は身分を証明することか?

ESTA

一般的に他の国に行くには「入れてください」「良いですよ」という手続きが必要。 でも、日本人は信用されているから短期の海外旅行くらいなら免除されている国が多い。 でも、アメリカは必要。 でも、ESTAという簡易版の手続きがある……と理解している。

ESTAってこんなに面倒だったかな……。 会社の情報とか、出生地とか、両親の情報まで入力させられる。 10年以上前に手続きしたときは、「あ、こんなもんで良いんだ」と思った覚えがあるが……。 面倒だったことを忘れているのか、10年間で変わったか。

最後のほうの「今までに入国拒否されたことがありますか?」みたいな質問に、間違えて「はい」と答えると、再申請しても弾かれるようになって大使館に行かないといけなくなるとかいう怖い話もググったら出てきた。

ビビっていたけれど、特に問題無く通った。

CTFの準備

そもそもコンテストのために行くので、コンテストの準備をしないといけない。

車をハックしたいなら「カーハッカーズ・ハンドブック」が良いということで、とりあえず買った。

www.oreilly.co.jp

運営から「こんなものを準備しておくと良いよ」というメールが来ていた。 その中にNFCがあった。

プログラムをから何かをしようと思うと、nfcpyというPythonライブラリが定番らしい。

qiita.com

使うNFCカードリーダーはRC-S380が良いらしい。 ただ、すでに後継機が出ていて新品が買えない。 AmazonのマーケットプレイスでRC-S380を買った。

NFCなんてどれも同じかと思いきや、規格が色々とあって、Suicaとマイナーカードは別物らしい。 へー。

RC-S380なら(Suicaの規格のほうは)カードリーダーがカード側をエミュレーションすることもできる。

残高カンストのSuicaの振りができたりしてちょっと楽しい。 ※誰でも読み書きできる部分を弄っているだけで、これで自販機で買い物をしたりはできないはず。

とりあえず、読み書きのやり方は分かったし、後は問題を見て考えれば何とかなるだろう(フラグ)。

他の準備

7年前に買ったラップトップPC(Surface Pro 5、メモリ8GB)がさすがに厳しくなってきたので、良い機会だから新しいラップトップPCを買った。

他に何か要るかな。 スーツケースは持ってる。 飛行機で便利なネックピローもなぜか持ってる。 アメリカのコンセントは形状が日本と同じだし、電圧も120Vでたいていの機器はそのまま使えるらしく、その辺の準備は不要。 何とかなるだろ。

というか、この手の海外旅行便利グッズは空港で買えるのか。 羽田空港の中に小さなビックカメラがあった。

飛行機

まずは、羽田 → ワシントンD.C.。

12時間のフライトが辛い。 飛行機は向こうが手配してくれて、United Airlines。 アメリカの航空会社。 何か映画でも観ようと思ったけど、ジャパニメーションは無いし、他の映画も日本語吹き替えはおろか、日本語字幕すら無い。 「インターステラ」とか「Tuesday」とか気になったけど、英語で聞いても理解できないだろ。 Tuesday、あらすじだけは日本語で書かれてて、面白そうだと思ったが、日本では上映されていないのか……?

en.wikipedia.org

ワシントンD.C.で乗り換え。 ここで預け入れ荷物を回収し忘れそうになったのが今回一番のヒヤリハット。 さらに、もう一度預けるのもスルーしそうになった。 チームメンバーに言われなかったら面倒なことになっていた。 「あー、日本に入国するときはスーツケースを持った状態で税関を通るよね。そういう感じか」と思っていたけど、なんか入国審査前に、通路の途中のそんなに目立たないところで預けないといけなかった。 なぜ1回ピックアップする必要があるのか謎。

時差ぼけ

私は時差ぼけは全然平気らしい。 日本とほぼ半日の時差があるので一番厳しい状況だと思うのだけど、普通に現時時間でx時ならx時の感覚。 あるいは、常日頃は夜型の生活をしていて、旅行中は朝型の生活をしていたから、ずれが小さいのかもしれない。

1日目

Automotive CTF 2024本戦。 このために来た。

……が、全然解けず。 つらい。

NFCは、コンテスト開始前にこのまっさらなカードが1人1枚配られた。 リーダーで読めない。 謎。

「タグ」がどうこう言っている問題があったのと、スタッフテーブルに車のドアの模型があったので、カードを何かするとそのドアが開くのかもしれない。 完全に一からカードを作らないだろうし、書き換えられるカードで、書き換えてどうこうだったりするのだろうか。

チームメンバーから「これを解析してくれ」と渡された実行可能ファイルも解析しきれず……。 申し訳ない。

終わってからあらためて読んだら、これだけの処理だった。

d = open("memory.dump", "rb").read()
X = d[0xab94:0xaba8]
K = d[0x8554:0x855a]
Y = ""
for x, k in zip(X, K*4):
    Y += chr(((x^k)-k)%0x100)
print(Y)
$ python3 solve.py
bh{pr0duct_AMB1tion}

このコンテストは、スコアボードが非公開だった。 翌々日に表彰式なので、そのときまでドキドキしてくれということなのだと思う。 競技プログラミングだと、終了前1時間くらいから順位表が凍結(更新されなくなる)のは良くある。 全く非公開は珍しい。 これは辛いかと思ったけど、解いたチームが多いほど問題の点数が下がっていく方式で、2チーム以上解いた問題は点数が下がるので何チーム解いたかが分かる。 1チームも解いていないか、1チーム解いたかは、点数が変わらないので分からない。 各問題について何チーム解いたかは分かるが、強い1チームが多くの問題を解いているのか、多くのチームがバラバラの問題を解いているのかも分からない。 ドキドキ具合としてはちょうど良いのかもしれない。

コンテスト終了後、チームメンバーに連れられて、クラフトビールの店に行った。 ビールもだけど、スペアリブが美味しい。

2日目

フリー。

前入りしていたチームメンバーも、コンテスト会場で話した主催社の人も勧めていたので、フォード博物館に行ってきた。

てっきり車関係の博物館だと思っていたけれど、別にそんなことはなく、何でもある。 めちゃくちゃ広い。

この蒸気機関車は模型などではなく本物だし、このサイズでも建物の片隅に置かれているという感じ。

プラスチックの射出成形を実演してくれる装置。

数学コーナーもあった。

コインをローラーで押しつぶすやつ。 日本だと硬貨を損傷するのは犯罪だけど、アメリカでは合法なのでこういう装置があるんですね~と思っていたが、今は場合によっては違法らしい。こういう土産物的なのはセーフ……? そもそもドル硬貨なんて持っていなかったからクレカで払ったけど。

www.nicesocal.com

ホテルに戻ってきて周囲を散歩。 デトロイトはカナダとの国境なので、川の向こうがカナダ。

なお、この辺は、北ではなく南がカナダ。黒い線が国境線。

hamayanさんと一緒に行ったBuddy's Pizza。

3日目

夕方の表彰式に行けばOKなので、それまではデトロイト美術館に行くことにした。

バスに乗ったら降り方が分からん。 皆何らかの手段で次の停留所で降りることを伝えているが、ボタンが見当たらない。 同じように降り方が分からないのか、「降ろしてくれ」と叫んで降りていったおばちゃんもいる。 ええ……どうしよ。 答えは窓際のワイヤーを引っ張るだった。 良く見ると、なんか運転席のほうまで繋がってる。

ここも広い。 絵とか彫像とかがいっぱいあるが……そもそも見ても分からん。 とりあえず、一番有名っぽいゴッホの絵を探した。 この絵、こんなに小さかったんだ。

Pokemon GOをしながら歩いて帰った。

地域限定ポケモンはけっこうイベントで出ているから、持っていない&アメリカにいるのはオドリドリ(ぱちぱちスタイル)だけか。 これはゲット。 事前に調べずに「持っていないやつがいたら捕まえれば良いんでしょ」と思っていて、トリミアンの地域限定フォルムは気が付かなかった。 悲しい。

pokemongo.gamewith.jp

表彰式。

4位だった。 上出来。 私は役に立っていないが……予選は多少は貢献したので許してほしい。

表彰式は車関係のカンファレンスのいちセッション扱い。 車関係だからブースを出している企業は全然分からない……と思ったらGitHubがいた。 ステッカーゲット。

帰宅

12時間のフライトはやっぱりつらいが、席が通路側だったのでだいぶ気が楽。

せっかく日本の外に出たのだから、免税品を買わないともったいない……と免税店を覗いたけど、海外の免税の価格のほうが、日本国内の課税価格より高かった。円安やばい。

あと、タバコは免税範囲が2カートンから1カートンに縮小されていた。

www.traicy.com

決済事情

マジでほぼ全てがキャッシュレスになっていてビビる。

基本的にクレカで払えるとは思っていて、「まあ、でも現金も要るよね。200ドルくらいあれば大丈夫かな」と持っていったけれど、ホテルで枕元に置いた4ドルと、帰国のときの空港で少しでもドルを使うかと払ったコーヒー代10ドル以外は現金を使っていない。 周りの客も皆キャッシュレス決済だから、この自分が持っていったドル紙幣以外はアメリカで現金を見ていない。

クレカは便利だが、不正利用が怖い。 まあ、金銭的被害は補償されるだろうけど、海外旅行の後に不正利用されてカードが再発行になり、あちこちに登録してあるカードを変更するという面倒なことになった人を知っている。

Kyashのリアルカードを発行していて、プリペイドカードだしちょうど良いかと思って持っていった。 半分くらいの店では弾かれた。 別に月額課金とかでもないし、VISAブランドだし、使えるときは使えるから海外NGということもないだろうし、何なんだろう。

三井住友VISAのナンバーレスカードと、それをiPhoneに入れたApple Payは常に使えた。 ナンバーレスカードとかApple Payとかだと、もうスキミングは気にしなくて良かったりするのだろうか。

物価

全てが高い。 めったに行かない海外旅行でそんなケチケチしなくて良いだろうと、現地にいる間はそんなに値段を気にしていなかったけれど、今あらためてクレカの明細を見るとけっこうな金額だな……。 そもそもアメリカはインフレしているらしく、小数点を消せば(100倍すれば)だいたい日本円になるでしょの感覚でまず高い。 そこから1ドル150円の円安で、さらにチップが乗る。

このハンバーガーとビールがたしか3,000円くらい。

コンビニみたいな感じのところで買ったこれが5,000円くらい。

外国人観光客の多い日本のスキー場でラーメンが3,000円とかニュースになっていたけれど、この感覚の外国人旅行者からしたら高くないな。

食事

アメリカの食事に対して、「美味しくないが量がめっちゃ多い」というイメージを持っていた。 全然そんなことはなかった。 量は普通だし、味も美味しい。

一番量が多かったのは帰りの空港で食べたハンバーガセットだろうか。 とはいえ、全然食べきれる量。

電動キックボード

街中のいたるところに電動キックボードが放置されている。 アプリで鍵を開けて乗って、好きなところに乗り捨てて良いらしい。 その乗り捨てられたものに次の誰かが乗ると。 すごい便利。

LUUPがロビー活動だの天下りだの叩かれているが、もっとロビー活動を頑張ってこれを実現してくれないものか。

試しにアプリを入れて乗ってみた。 日本でLUUPは使ったことが無いので、初めての電動キックボード。 完全に止まった状態だとアクセルが利かなくて、最初だけ自分でこぐ必要がある。 なるほど。 そういえば、海外旅行保険に入るときに「車は保証対象外だから、車に乗るなら別途保険を掛けろよ」と言われてたな。 これ、アメリカも車両扱いだったりするのかな? で怖くなってすぐ降りた。

喫煙事情

タバコは売ってないし、喫煙所は少ないし、喫煙所で吸っている人も少ない。 健康的。 喫煙者はタバコを日本から持っていったほうが良い。 噛みタバコとかもあると助かる。