ソースコードを読む
- 環境・ツール
- rg (ripgrep): https://github.com/BurntSushi/ripgrep
- 方法
- $ rg する
- エディタで開く
- わからないことは辿って読む
- まとめる
- これを繰り返して、理解する
- たとえばELFローダが読みたい
- どこから読む?
- $ rg -i ‘ELF loader’ とかしてみる、いい感じのが引っかからないときはentrypointなど関連する語句で検索してみる
- ローダはプログラムを実行するから、たぶんexecveシステムコールあたりが関係ある
- 出てきた結果をとりあえず読んでみる
- 結果が多い場合
- フォルダを一段降りてみる
- $ rg -C 5 ‘hogehoge’ のようにして前後を見ながら文脈で検討をつける
- ディレクトリ名で検討をつける
- デバッグとか取り入れるといいのかな
Backlinks
SecHack365
SecHack365は学生(と社会人)が、1年間指導を受けながらセキュリティに関連したり関連しなかったりするテーマで何かをつくる長期ハッカソン。無料で、交通費も全部出る。筆者は2018年度に、「ライブラリ・リンカ・ローダ・コンパイラetcを連携させたセキュリティ機能の開発」というテーマで参加した。