石田マネジメント事務所 -83ページ目

石田マネジメント事務所

技術やものづくりに関する最近の話題と気づき、ちょっとした備忘録を書いています。

今回12ステップで作る・・・ は面白かったですが、もういちどじっくりと最初のローダ、リンカのあたりと、ELF形式あたりをやっています。

 

というのは、最近CTFなんかでやられているバイナリ解析では、OSの構成だとかがわからないと、まったくピーマンになるだろうと思っているからです。

 

本格的なLinuxではなく、この本で扱っているようなシンプルなOSであれば、メモリとか、割込みベクタをどう管理しているかを見通せますから、その理解のもとに、readelf とか objdump での逆アセンブルをやると、なるほどそうか と納得できると思います。

 

そういうテキスト、教材を作る という観点からもういちどじっくりおさらいをしています。

組込みOSの自作の方は、その後順調(cuコマンドだと、~C を受け付けないので、kermitに鞍替えしましたが)に進み、ほぼ終了しました。

 

自分の場合、OSを作ったことはありませんが仕組みだとかはUNIXの時代にいろいろ触っていたりしたので、割込みだとかタスクの切り替えだとかは懐かしいかんじで、特に難しくはありませんでした。

 

また、OSを自作するのが目的ではなく、ファームだとかのバイナリを解析するのが主眼なので、ARMで動く組込みLinuxの実行形式とか、また突き詰めるとリンカ、ローダのあたりをもう少し勉強しようと思っています。

12ステップで作る組み込みOSの方はそのごすこぶる順調です。なぜこれに取り組んでいるのかというと、単に趣味的に面白いからというだけではなく、年末にかけて行う大学院での授業の題材にできないかと考えているからです。

 

OSとかファームウェアの構造とか動作原理の解説をしたら、CVEの脆弱なコードなんかをわざと記述し、binwalk などで確認してゆくというシナリオをハンズオンでやろうと考えていて、早速コマンドで 

 

 binwalk -B  xxxx.elf

 

で確認したりしています。今回のH8マイコンは手軽で、結構わかりやすいしいいかなと思っています。