「セキュリティミニキャンプ 2019 in 山梨 専門講座」に参加した話

セキュリティミニキャンプ 2019 in 山梨 に参加したので参加記を書こうと思います。
駄文ですがよろしくお願いします。

専門講座

現地到着してすぐにkaitoさんとエンカした。
専門講座2の方のUEFIのコードについて早速デバッグしてもらった。(ありがとうございます。)

オープニング

セキュリティキャンプ全国大会の紹介。
その後グループで軽い自己紹介を行いました。

専門講座1「ミニキャン言語を作ってみよう!」

この講義はメインが事前課題だったのでスライド発表を行いました。
スライド発表緊張しすぎて最後
「発表は以上です。ご静聴ありがとうございました。」
というべきところを
「発表ありがとうございました。」
と主催者側の締めの挨拶をしたのはここだけの内緒...

そんなことはさておき、どの参加者のスライド発表もとても見やすくまとめられていて、参考になりました。
後半の方達の発表は発展課題と独自開発などについての発表だったので自分とのレベルの差をひしひしと感じました。

自分は電卓っぽくプログラムの体裁を整えるという発表をしたのですが、その際に講師の高橋先生から 「今は'x+y'のような形式でしか値を取得していないから、より電卓っぽくするために'x+y+z+...'と指定できればい良いね」
というアドバイスをいただきました。
ありがとうございます。
本当にその通りで、今後はそこも含めて独自言語で全て実装することを目指そうと思います。

今回の講義はみなさんスライドのURLを貼ってくれていたので、再度振り返って勉強しようと思います。

そして最後に一つ気になったこと。
高橋先生が着ていたLLVMドラゴンのTシャツはどこから出ているものなのだろう。

専門講座2「OSの力を借りずに起動するアプリを作ろう」

この講義では軽く講師の内田先生の紹介があった後、C言語ポインタクイズをしました。
クイズを通して以前よりポインタの理解が深まったと思います。
アセンブリ側からのアプローチでポインタを理解するのは初めてだったのでそれが理解を深めた要因だと思いました。

クイズ終了後は内田先生が作成しているMikanOSのデモを見せていただきました。
もうOSじゃん。という印象でした。
「自作OSは凄さがあまり伝わらないところが面白い」
といった感じのことのおっしゃっていて(曖昧)、面白いなと思いましたw

そのあとはオプションの話題としてUSBドライバとABIについて講義をしていただきました。
個人的には「もっと詳しい内田の自己紹介」という項目に惹かれたのですが勇気が出ませんでした。(少し後悔している(おい))

講義の中でjavaのメモリ境界線の話になったのですが、javaは8バイトの倍数でオブジェクトのメモリを確保するらしい。そのため下位アドレスを記憶しておく必要がなくなってより多くのアドレス空間を識別できる。
というお話でした。(多分)

講義が終わったあとは黙々と演習をする時間でした。
バシバシ質問しようと思っていたのですが、理解している部分が少なすぎて質問をまとめることもできていませんでした。
これはかなりの反省点で、もっと課題をやり込んで質問がまとまっている状態で講義に参加するのがベストだったなと思いました。
次に活かそうと思います。
まあそういったひどい状況だったのですが、チューターの方には自分の詰まっている部分を言語化するところから手伝っていただき一つ一つ丁寧に教えていただきました。
ありがとうございます。

しかし、演習の時間内で発展課題は終わりませんでした。
終わってからも撮影隊で来ていた方やチューターの方にお時間をいただきデバッグに協力していただきました。
バス・電車のギリギリまでお話させていただけたので温かみを感じました。
アロケーションしたアドレスとプログラムを展開したアドレスがずれている(かと思われた)問題があり、hexdumpなどを使ってアドレスを確認し、再計算してあげる必要があるという話でした。
まあ後日談なのですが、ミスはかなり初歩的なミスで、実際には

status = fs->Read(fs, &read_byte, (void *)elf_file_addr);

としなければいけない部分を

status = fs->Read(fs, &read_byte, &elf_file_addr);

としてしまっていたという初歩的なミスでした。
こんな単純なミス、逆にプロの方は気づきにくいなと思いました。(時間もない中で、かつアドレスに焦点を当てていたので)
申し訳なさでいっぱいです。チューターの方申し訳ございませんでした。

専門講座が終わって

専門講座は一瞬で終わってしまいました。
講師の方やチューターの方ともあまりお話ができなかったのも残念でした。こういうところでの積極性は絶対持っておくべきだと感じました。
事前課題が大ボリュームだったが故、より短く感じました。
物足りない感を感じた人が周りにいらっしゃったので僕を含めて、5人で近くのサイゼリヤで進捗を出す会をしました。
私はそこでTaskerさんにお力を貸していただき、発展課題を完了させました。(ありがとうございます)
自分以外みんな強い人で完全に置いてかれていました。
が、とても楽しい空間でした。良い刺激でした。

まとめ

今回の専門講座を通して、自分の積み上げのなさを再確認しました。
他の強い方は例外なくきちんと積み上げたものがあって、熱中して語るものがあって。という感じでしたが自分はそれがなく不甲斐なかったです。
次会うまでにはきちんと積み上げて、一つ何か熱く語れるものを持っておこうと思います。

最後に

濃密な3週間&2日間でとても刺激を受けました。
セキュリティ・ミニキャンプ 2019 in 山梨
本当にありがとうございました。