更新日時で差をつけろ

もはや更新日時でしか差を付けられない

angstromCTF 2018 に参加した

sei0o, @yfba_, @6Lgug, @cotton392, @Tako_Mochiii でチームを組みました(BiPhone)。

angstromCTF 2018 に出ました。

自分は1630pts取って合計2465ptsで37位、景品を受け取る資格があるアメリカ在住の高校生のチームならば6位と7位の間でした。

低難度の問題が案外すぐ尽きてしまってCTFに意欲を示していた2人が1問も解いてないのがアレ。yfba_が予想以上に熱心にやってた。
slots, Very ez cipher, Washington, Hellcode, Bank Ropperyは解きたかったなあ。
逆にFile Storer, Madlibsは過去のCTFでの知見を活かせたので良かった(両方web...)。

Discordグループをメモとおしゃべりに活用した。楽しかった。

解いた10問のwrite-upはScrapboxに置いてあります

3/14

円周率の日。さすがにあんまり思い出せなくなってきた…
言語学オリンピック一次予選を通過したとの連絡が入った。とりあえずうれしい。一安心。
CombKansaiには行けないけどね。

昼から誘われて NACLOの過去問 を解いたが歯が立たなかった。
せめてWikipediaぐらいは読んで悪あがきをしようと思う。春休みの思い出〜

LSE CTF ではxPlatformとReduced Instruction Set Crackmeを解いた。両方ともSolved 27。
MIPSアセンブリがちょっとだけ読めるようになった。
常設CTFはwrite-upを書いてアウトプットできないのがツライ。

今日はルーター実装とか他のことを一切していない…rev始めると気になってやめられないんだなあ…

3/7

記号論理の本難しいけど、ちょくちょくCNFとか知ってる単語が出てきてモチベーションは維持されてる。ただ最終的に何が学べるかは未知数…SATソルバでどうこうするときに活きるとうれしいな〜程度で。

自作x86エミュの本はいよいよ、というよりもう最終章に入った。BIOSってカーネルを読むだけじゃないんだな、もっと知りたくなってきた。実機で動かすって書いてあるけれど、ブートローダがぐちゃぐちゃになってるこのMacで動くのか心配。 ModR/Mもだいぶわかるようになってきた。本が終わったらいろいろバイナリを与えてみてNot implementedな場所を埋めていきたい。

ルーター自作本はElixirでやるかCでやるか迷っていたが、いろいろ調べた末rawソケットの扱いが不安なので内容通りC言語で書いてみることにした。さらに、Twitterでpcapインターフェースというものの存在を教えてもらったので本を1周できたら使ってみたい。

「リンカ・ローダ実践開発テクニック」も読み始めた。BIOSの話はコッチにも少しだけ書いてある。ELFはCTFで使うので理解していたつもりだったけど、別の視点から見ると知らないことだらけだった。

熱の冷めないうちに進めてしまいたい。

3/6

x86エミュレータ本を今日も進めた。addとかpushとか実装してだんだん形になってきて楽しい。ModR/Mがちょっとややこしい。
(Elixirで)300行程度なのでまだまだわかる。
rm32r32をどこかで見たことがあると感じたが、pwnの最中にアセンブリの命令を調べているときにページに載っていたものだった。なるほど。

「バイナリで遊ぼう!」本を最後まで読み切った。
アセンブリ短歌をやってみようとした。が、自分でアセンブリを手打ちしたことがないので手が動かない…「Cで書いてアセンブルして読む」というのをやっぱりまずはやるべきなのかな。基礎。

Pony という言語を見つけた。アクターモデル?を採用していて、データロックという概念が存在しなかったりするらしい。マイナーかと思えばGitHubリポジトリには結構starがついている。楽しそう。

群論本はちょっと難しくなってきてあんまり進めなかった。

3/5

午前中はAtCoder Omedesを作っていた。Elixirのリハビリ。コンテストごとにレート色が上がった人を祝福してくれます。
午後からはx86エミュレータをElixirで作っていった。条件分岐をif-elseでやるか、ガードでやるか、もしくはループをEnumで実現するかパターンマッチ+再帰で書くか迷う。
HTTPoisonなどを読んでみるべきだろうか。コードリーディングは若干苦手だが…
The BEAM Bookというのもあるみたい。

群論なんかこわくない」「バイナリで遊ぼう」も100ページ弱まで進んだ。
アーベル群とか部分群とか出てきて本格的になってきた。
アセンブリ短歌が想像以上に面白い。でも自分では思いつかないなぁ…

本を読むのは楽しいけど、ちゃんと身につけるようにしたい。どうやったらいいのかわからないからとりあえず手を動かすようにはしている。
pwnもcryptoも最近してないしそれに関して言えばよくない。もっと集中してスピード上げたい。

IOLは書類をやっとポストに入れてきた。通るかな?

3/4

朝メールをチェックすると情報処理学会から電子図書館の案内が来ていたので見てみた。「認証基盤」とかいう堅苦しいページでログインして学会誌を開こうとするもロードが遅い遅い。どういうことなんだろう…

最新版のを見ると「LSI配線問題」というものについての特集があった。いかにうまくマス上に回路を配置するか、というものらしい。なんとなく制約充足問題っぽいな〜と思ってたらその通りで、SATソルバを使って解いていた。他にも機械学習や0-1整数計画法というものを使った解き方が紹介されていた。

3年分ぐらいの学会誌を漁ってみるとファイルシステムとかディジタルゲリマンダについての特集があり、ためになりそうなのでダウンロードした。ぼちぼち読んでいきたい。
論文も一部公開されているので見てみたけど、やっぱり難しく書かれててサクッと読むものではないと感じた。

「バイナリで遊ぼう!」を50ページぐらい読んだ。とはいってもプログラムを書くわけではないのでそんなに時間はかけていない。「バイナリ体操」を日々の生活に取り入れて健康なバイナリアンを目指します。
tarが無圧縮のフォーマットであるというのを今更知った。いや以前どこかで見たはずなんだけど忘れたんだよなあ。

群論なんかこわくない」もわずかに進めた。反復しながら読んでいくのが安全っぽい。

「自作エミュレータで学ぶx86アーキテクチャ」を読み始めた。親切なことにC言語でのソースコードが別途配布されている。が、それを動かすだけでは勉強にならない(かつ自己満足ができない)のでElixirなどで真似して書いてみることにした。
Elixirで書かれたエミュレータは他にもあるみたいだし、多分大丈夫。

IOLの書類を書き上げた。結構手こずった…
TOEICは単語音読に1時間半かけるよりリスニングをなんとかしたほうが良いと感じたので比率を調整した。英検1級の過去問を使ってやっていきたい。
フォロワーの人に THC CTF というのを紹介してもらったので一緒に出ることにした。楽しみ。

3/3: 閉寮

閉寮なので家に帰った。1ヶ月後には後輩ができるのか…
久しぶりに浴槽に浸かれた。素晴らしい。

なんとなく図書館に行った。x86エミュレータの本が目当てだったけど他にもいろいろ面白そうなのでついつい8冊借りてしまった…
割と薄めの本ばっかりだしルータ本と線形代数本とTOEICあってもなんとかなるでしょ!w

  • 自作エミュレータで学ぶx86アーキテクチャ Twitterでおすすめされているのを見た。著者の人すごい…。個人的に表紙にキャラクター載ってるとちょっとアレ。かわいいとはいえ。
  • 群論なんかこわくない 対話形式で進める群論の入門の本。適当に数学書の棚に行ったらあった。すでに60ページほど読んだ。
  • APIデザイン ケーススタディ Rubyのメソッドを作る際に考えられたことをコミッタの人が書いてる
  • リンカ・ローダ 実践開発テクニック 半年前だったらまず手に取らなかったであろう本。というか全部そう。実際にリンカを作るので楽しそう。
  • ソーシャル・エンジニアリング コミュ力を身に着けたい(誤った動機
  • バイナリで遊ぼう! どこかでおすすめされてた本。俳人になりてえ
  • Linuxカーネルソースコード」を読み解く たまたま見かけたので。ブートプロセスを取り上げた本もあったけどちょっと難しそうなのでこっちで慣れることにした。
  • インターネットフォレンジック 某氏に影響されて借りた。実例が載っているので良い。
  • 学んでみよう! 記号論 SAT/SMTソルバがここしばらくマイブームで、目次にCNFという文言があったので借りた。ポップなタイトルと表紙とは裏腹に中身はガチっぽい。

他にもシェル芸でCMSを作る本とか大じゃない方の熱血アセンブラ入門とかあったけど量が量なので見送り。

EasyCTF IV の MalDropper を解きたくてC#のデコンパイラを入れたいのにILSpyが動いてくれない。困った...

IOLの1次予選はとりあえず感想を紙に書き写して、解法も半分ぐらい書き終わった。これで伝わるといいんだけれど。
「1000字も書けねえ〜」とか言ってる割にはこの日記は1000字ぐらいあるんだよな。