Binary Hacks

感想なのか!
いや、ちょっとだけ書かしていただいた(例外のあたり)んだけど、なんか、ほとんど一読者でしかないというか。


http://0xcc.net/binhacks/toc.html 目次を見ていただければわかるとおり、いやーみんな好き勝手書いたよなーって感じが。
いや、でも、こういうのは、バラバラに見えて、バラバラじゃないんだ…そう、伝わらないと思うけど…!!
たとえば、わかりやすい例を持ってくるならば、君は char * と char [] の違いだけで、いっこのエントリを書くことができるか!?というような話なんだ!(http://d.hatena.ne.jp/yupo5656/20060907)
yupo5656さんのネタを見れば、このネタだけで、

  • nm
  • objdump
  • gdb
  • C言語仕様
  • PIC
  • x86
  • オブジェクトファイル
  • GCC拡張の__attribute__

という知識が駆使されているというのが読み取れるかと!バラバラの知識に見えるのだけど、そういうのが組み合わさることによって、char *とchar []の違いを深追いする能力が身につくというわけなんである…!あなたは、char const *とchar const [ ]の違いを説明できるか!?という話なのだ。
このレベルにまで到達するためには、常日頃から、オブジェクトファイルについて考え、コンパイラの気持ちになって、色々とネタ探しをすることが必要なのである!
例えば、僕の場合だと、http://d.hatena.ne.jp/w_o/20060808#p2 こういうネタは、常日頃からスタックフレームについて考えてたおかげで生まれたと言えるし、常日頃からスタックフレームについて考えてるってどんなんだよ。
まあ、そんな感じで、そういった知識習得のための、第一歩として、Binary Hacksはいいんじゃないでしょうか。たとえば、これを期に、/usr/include/elf.hを眺めてみるとか、binutilsのソースを頂戴して、libbfdを漁ってみるとか、ひたすらgcc -Sしてみるとか!!


既にそういうレベルに到達してる人は…適度に各人の判断で。


あと、四章のセキュアプログラミングあたりは普通に勉強になるんです…