トップ «前の日記(2006-11-07) 最新 次の日記(2006-11-09)» 編集

日々の破片

著作一覧

2006-11-08

_ BINARY HACKS

いただきました。ありがとうございます。(おれもそういうカテゴリーなのかな? カンファレンス参加者かつ感想書いた人特典なのかと思ったりもしたけど)

Binary Hacks ―ハッカー秘伝のテクニック100選(高林 哲)

実は書名だけ見て、Binary2.0のセッション内容を集めたような本だと思ってたわけだけど、全然違った。むしろ、あの場に出てセッションをできるような人になるために知っておくべきポイント集という感じかな。

というか、個人的にはこれは手元に置いておくべき本だと思うし、実際のところ相当、ありがたい。

というのは、たとえばodの引数って全然覚えられなくて(odやtcpdumpとかみたいに重要なツールは、わざと狙ったんじゃないかと疑ってしまうくらい、引数がわかりにくい。manページ見ながらでもしくじることがあるくらいだ)しょうがなく、8進−16進変換しながらエンディアン引っくり返ししながらASCIIコード−文字変換をするというような、無駄な作業を何10回となく繰り返してるからだ。僕の場合だと主となる開発環境のWindowsだとbzが手軽に使えるから、利用頻度が少なく本気で覚える気にならないという面があるけど。

というodのコマンドライン引数を#4で6ページ使って説明してある。#は1から100まであるわけで、これが#4、#3がfileの使い方と何してるかの解説(単にmagic見るだけじゃなかったのか、とこれは初めて知った)、#2が用語解説、#1が概要説明で、全部合わせてイントロダクション。#3と#4をイントロダクションに含めてるってことは、要するにそういう本だということだ。では、バイナリーファイルを追っかけよう。

そういえば、#82はstraceだけど個人的には一番良く使う-pの説明がなかったりするけど、重要なのは、こういったコマンドがあるということを示していることと、何をするコマンドで、どうやってるのかについて書いてあることだ。

で、それなりの厚さだが、100個のパートに分かれているということは、頭から順に読む必要はなく、どこに何が書いてあるか大雑把に目次を頭に入れておいて、後は必要に応じて拾ったり、ときどき開いて読めばよい。たとえば、#94のプロセッサのメモリーオーダリングみたいに、ちょっと空いた時間にショートショートみたく読むと楽しそうだ。というか読んでしまったが。

その一方で、6章のプロファイラとデバッガの章とかはごちごちのプログラムを作る前にまず読んでおいたほうが良さそうだ。

という具合に現実に役に立つし、かつ読み物でもあるという意味で、おもしろい立ち位置の本だ。そうか、実用書と読み物のバイナリーをハックしているのかも。

それにしても、こういう本って貴重だな、となんとなく感慨深くもある。ソフトウェアはハードウェアじゃないのだが、それだけにいくらでも試せるし試しやすいというすごい美点があるのだ。本当に、こういうおもしろいものが世の中にあるっていうのは幸運だ(たとえば孫子だったら自らの理論を実験するには、戦争しなきゃならないわけだし)。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

ジェズイットを見習え